Hilos en Java

Hola, me gustaría hacerles una pregunta:
Cuando se requieren implementar threads en java, ¿como saber cual es el numero optimo que requiere tu aplicacion? Por ejemplo, si se quiere usar concurrencia para leer, no se, 3000 archivos, y luego a lo mejor 5000 archivos y luego a lo mejor solo10 o 100, ¿existe algo que diga cuantos utilizar? No se si estoy siendo claro con la pregunta. Saludos !!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

pues no no mucho

En el caso concreto de leer 3000 archivos hay muchas variables que considerar. Para estar leyendo archivos y procesando texto la verdad no tiene caso usar más hilos de los que puedas realmente mapear a cores en el equipo. Y si todos los archivos están en el mismo disco duro, no hay RAID ni nada por el estilo, pues habría que usar unos buenos buffers para que no se queden unos hilos esperando mientras otros leen de disco (un solo disco evidentemente no podrá proveer datos a todos los hilos que quieren leer archivos de ahí).