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

Что такое join в многопоточности

join() — это метод класса Thread, который позволяет одному потоку дождаться завершения другого.

Как работает:

  • Поток, вызывающий join(), приостанавливается до тех пор, пока целевой поток не завершится.
  • Можно указать таймаут: thread.join(1000) — ждём максимум 1 секунду.

Пример:

java
Thread thread = new Thread(() -> {
    System.out.println("Поток начал работу");
    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    System.out.println("Поток завершился");
});

thread.start();
thread.join(); // Основной поток ждёт завершения `thread`
System.out.println("Основной поток продолжает работу");

Вывод:

text
Поток начал работу  
Поток завершился  
Основной поток продолжает работу  

Важно:

  • Если поток не стартовал, join() вернётся мгновенно.
  • Если поток прерван (InterruptedException), join() может завершиться досрочно.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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