2011-08-23 13 views
6

¿Es seguro usar singleton ExecutorService y varias instancias de CompletionService usando el mismo grupo de subprocesos?¿Es seguro usar Singleton ExecutorService

CompletionService<Object> collector = new ExecutorCompletionService<Object>(threadPool); 

Por lo tanto, habrá múltiples subprocesos creando instancias como la anterior, 'colector' con un singleton threadPool.

+0

No veo ningún problema. ¿Tiene algún problema en particular que podría causar problemas? – toto2

+0

mi sensación de tripa dice que no habrá ningún problema. Pero quería confirmar antes de usarlo ya que no pude encontrar y documentación específica sobre esto. – ankitjaininfo

Respuesta

5

Todo irá bien. Cada instancia de ExecutorCompletionService mantiene su propia cola de tareas completadas y simplemente utiliza el Executor subyacente para procesar cada tarea.

Las tareas pueden interferir entre sí en cuanto a rendimiento si el número de servicios completos es grande y el grupo de subprocesos tiene un límite superior, pero eso no afectará la corrección del resultado.

Cuestiones relacionadas