У меня есть цикл {Loop-1}
, где я запускаю потоки. Класс, который содержит {Loop-1}
, реализует Daemon и Runnable.
В {Loop-1}
поток, который запускается, вызывает метод coordinate()
класса Coordinate.java
, где я использую ExecutorService.
Когда создается объект Coordinate.java
(это происходит однажды ДО {Loop-1}
), я создаю экземпляр ExecutorService
pool = Executors.newFixedThreadPool(2);
В coordinate()
я создаю два объекта класса, который реализует Callable, и затем запускаю их и сохраняю результат в списке результатов будущего.
callableResults = pool.invokeAll(threads);
После этого я пытаюсь получить результаты в цикле с result = future.get();
Затем я возвращаюсь к {Loop-1}
и весь процесс начинается снова (звоните coordinate()
, invokeAll()
, future.get()
Теперь у меня есть следующий вопрос:
1. Нужно ли отключать пул ExecutorService после того, как я получил результаты в coordinate()
?
2. Нужно ли заново создавать пул каждый раз, когда мои {Loop-1}
звонки coordinate()
?
Спасибо за ответы! : -)