Wie kann ich mit ExecutorService warten, bis alle Threads beendet sind?
Ich muss eine Anzahl von Aufgaben 4 gleichzeitig ausführen, etwa so:
ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
taskExecutor.execute(new MyTask());
}
//...wait for completion somehow
Wie kann ich benachrichtigt werden, wenn alle abgeschlossen sind? Im Moment kann ich mir nichts Besseres vorstellen, als einen globalen Task-Zähler zu setzen und ihn am Ende jeder Task zu verringern. Dann überwach diesen Zähler in einer Endlosschleife, um 0 zu werden. oder eine Liste von Futures abrufen und in Endlosschleifen für alle isDone überwachen. Was sind bessere Lösungen ohne Endlosschleifen?
Vielen Dank.