Как дождаться завершения всех потоков, используя 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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