Java исполнители: дождитесь завершения задачи. [Дубликат]

На этот вопрос уже есть ответ:

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

Мне нужно отправить несколько заданий, а затем дождаться их, пока все результаты не станут доступны. Каждый из них добавляетString вVector (по умолчанию синхронизируется). Затем мне нужно запустить новое задание для каждого результата в векторе, но это нужно делать только тогда, когда все предыдущие задания перестали выполнять свою работу.

Я хочу использовать Java Executor, в частности, я пытался использоватьExecutors.newFixedThreadPool(100) для того, чтобы использовать фиксированное количество потоков (у меня есть переменное число задач, которое может быть 10 или 500), но я новичок с исполнителями, и я не знаю, как ждать завершения задачи. Это что-то вроде псевдокода того, что должна делать моя программа:

ExecutorService e = Executors.newFixedThreadPool(100);
while(true){

/*do something*/

for(...){
<start task>
}

<wait for all task termination>

for each String in result{
<start task>
}

<wait for all task termination>
}

Я не могу сделать e.shutdown, потому что я некоторое время (правда), и мне нужно повторно использоватьexecutorService ...

Можете ли вы мне помочь? Можете ли вы предложить мне руководство / книгу о Java исполнителей?

Ответы на вопрос(5)

Ваш ответ на вопрос