Встречается на собеседованиях • сегодня

Как будешь использовать join при ThreadPoolExecutor

В ThreadPoolExecutor метод join не используется напрямую, так как он относится к классу Thread. Вместо этого для ожидания завершения задач в пуле потоков применяют:

  1. shutdown() + awaitTermination() - стандартный подход:
java
executor.shutdown();
executor.awaitTermination(60, TimeUnit.SECONDS);
  1. Использование CountDownLatch для синхронизации:
java
CountDownLatch latch = new CountDownLatch(taskCount);
executor.execute(() -> {
    // задача
    latch.countDown();
});
latch.await(); // ждем завершения всех задач
  1. Через Future при использовании submit():
java
Future<?> future = executor.submit(task);
future.get(); // блокирует пока задача не завершится

Важно: ThreadPoolExecutor сам управляет потоками, и прямое взаимодействие с ними не требуется. Для ожидания завершения всех задач лучше использовать вышеуказанные механизмы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы