Я использую среду Executor, чтобы запустить несколько потоков, используя пул потоков, т.е. newFixedThreadPool. Я использую threadpool.submit (aThread) для отправки заданий, которые будут выполняться пулом потоков, и это прекрасно работает, однако мне нужно определить, когда все потоки завершены, чтобы я мог продолжить другую обработку. Я посмотрел на использование Future.get (), который блокирует, пока поток не завершится, проблема в том, что он блокируется, пока не станет доступен результат. Я также рассмотрел использование непрерывного вызова метода isTeridity (), за которым следует спящий режим после выдачи завершения, чтобы проверить, все ли потоки завершены, но мне это не кажется опрятным. Есть ли другой способ чище? Также, если в каком-либо из потоков возникает исключение, я хочу иметь возможность завершить все остальные запущенные потоки, а также остановить запуск любого потока в очереди в пуле. Каков наилучший механизм для этого?
С нетерпением ждем ваших ответов
TIA