Tengo un programa que genera subprocesos (~ 5-150) que realizan un montón de tareas. Originalmente, usé un FixedThreadPool
porque esta pregunta similar sugería que eran más adecuados para tareas de mayor duración y, con mi conocimiento muy limitado de subprocesos múltiples, consideré que la vida media de los subprocesos (varios minutos) era "de larga duración ".
Sin embargo, recientemente agregué la capacidad de generar subprocesos adicionales y hacerlo me lleva por encima del límite de subprocesos que establecí. En este caso, ¿sería mejor adivinar y aumentar el número de subprocesos que puedo permitir o cambiar a uno CachedThreadPool
para no tener subprocesos desperdiciados?
Probándolos a ambos de manera preliminar, no parece haber una diferencia, así que me inclino a ir con los CachedThreadPool
justos para evitar el desperdicio. Sin embargo, ¿la vida útil de los subprocesos significa que debería elegir un FixedThreadPool
subproceso y simplemente ocuparme de los subprocesos no utilizados? Esta pregunta hace que parezca que esos hilos adicionales no se desperdician, pero agradecería la aclaración.