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