Я изучал потоки и наткнулся на следующий код, и у меня есть некоторые проблемы
ExecutorService exec = Executors.newFixedThreadPool(2);
exec.execute(left);
exec.executed(right);
if (!exec.isTerminated()) {
exec.shutdown();
exec.awaitTermination(5L, TimeUnit.SECONDS);
}
int result = left.getResult() + right.getResult();
Если все задачи завершены, тогда, если условие будет ложным, и пул потоков не будет завершен, так как нет команды выключенияза пределами условия if.
Итак, верно ли следующее:
Так не должно ли происходить отключение снаружи, если также?
Почему даже при условии if shutdown () ожидает завершения всех предварительно отправленных задач, и мы даже можем избавиться от awaitTermination ()?