Является ли объектом-исполнителем подразумевается повторное использование после shutdown
? Я имею в виду, если я вызову shutdown
или shutdownNow
после завершения исполнителя, должен ли я сделать new
для создания нового пула потоков или возможно каким-то образом "reset" /повторно использовать ранее завершенный исполнитель и повторно использовать его?
Update:
Если мне нужно создать новый пул потоков, как я могу "понять", что предыдущий был остановлен?
Например.
Следующее:
public void startPool(){
if(threadPool != null && !threadPool.isShutdown()){
return;
}
threadPool = Executors.newCachedThreadPool();
//other stuff
}
public void stopPool(){
if(threadPool != null){
threadPool.shutdown();
}
}
Не получится. Если я вызову stop
, а затем start
, новый пул потоков не будет создан из-за условий. Каков правильный способ кодирования этого?