Optimización de subprocesos de Java al 100% de uso de la CPU

Tengo una aplicación que acepta el trabajo en una cola y luego gira ese trabajo para completarlo en subprocesos independientes. La cantidad de subprocesos no es masiva, digamos hasta 100, pero estas son tareas intensivas y pueden aumentar rápidamente la CPU hasta el 100%.

Para hacer el trabajo más rápido, lo mejor es simplemente lanzar más subprocesos cuando necesito hacer más trabajo y dejar que el programador de subprocesos de Java se encargue de distribuir el trabajo, o ser más inteligente y administrar la carga de trabajo para mantener la CPU a continuación ¿El 100% me consigue más rápido?

La máquina está dedicada a mi aplicación java.

EDITAR:

Gracias por la entrada fantástica!

Las tareas son de una complejidad variable e implican I / O, por lo que tener un grupo de subprocesos bajo de 4 puede que solo esté ejecutando la CPU al 20%. No tengo forma de saber cuántas tareas llevarán la CPU al 100%.

Mi idea era si debería monitorear la CPU a través de RMI y marcar dinámicamente el trabajo hacia arriba y hacia abajo, o simplemente no debería importarme y dejar que el sistema operativo lo maneje.

Respuestas a la pregunta(5)

Su respuesta a la pregunta