Как дождаться завершения всех потоков, используя ExecutorService?JAVA

Программисты JAVA общаются здесь
Anonymous
Как дождаться завершения всех потоков, используя ExecutorService?

Сообщение Anonymous »

Мне нужно выполнить некоторое количество задач по 4 за раз, примерно так:

Код: Выделить всё

ExecutorService taskExecutor = Executors.newFixedThreadPool(4);
while(...) {
taskExecutor.execute(new MyTask());
}
//...wait for completion somehow
Как я могу получить уведомление, когда все они будут завершены? На данный момент я не могу придумать ничего лучше, чем установить какой-то глобальный счетчик задач и уменьшать его в конце каждой задачи, а затем отслеживать в бесконечном цикле, чтобы этот счетчик стал равным 0; или получите список фьючерсов, и в бесконечном цикле монитор будет выполнен для всех из них. Какие решения лучше, не связанные с бесконечными циклами?

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/125 ... torservice

Вернуться в «JAVA»