Jak czekać na zakończenie wszystkich wątków, używając ExecutorService?
Muszę wykonać pewną ilość zadań 4 na raz, coś takiego:
ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
taskExecutor.execute(new MyTask());
}
//...wait for completion somehow
Jak mogę otrzymać powiadomienie, gdy wszystkie z nich są kompletne? Na razie nie mogę myśleć o niczym lepszym niż ustawienie jakiegoś globalnego licznika zadań i zmniejszenie go na końcu każdego zadania, a następnie monitorowanie w nieskończonej pętli tego licznika, aby stał się 0; lub uzyskaj listę kontraktów terminowych i nieskończoną pętlę monitora dla wszystkich. Jakie są lepsze rozwiązania nie obejmujące nieskończonych pętli?
Dzięki.