¿Cómo esperar a que todos los subprocesos finalicen, usando ExecutorService?


Necesito ejecutar alguna cantidad de tareas 4 a la vez, algo como esto:

ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
    taskExecutor.execute(new MyTask());
}
//...wait for completion somehow

¿Cómo puedo ser notificado una vez que todos ellos están completos? Por ahora no puedo pensar en nada mejor que establecer un contador de tareas global y disminuirlo al final de cada tarea, luego monitorear en bucle infinito este contador para convertirse en 0; o obtener una lista de Futuros y en bucle infinito monitor isDone para todos ellos. ¿Cuáles son las mejores soluciones que no implican bucles infinitos?

Gracias.


Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52