Назад к вопросам
Junior — Middle
67
Какова роль метода join() в классе Thread и зачем он используется в многопоточном программировании?
Компании, где спрашивали
Firecode
Ответ от нейросети
sobes.tech AI
Метод join() в классе Thread используется для того, чтобы текущий поток ожидал завершения другого потока, на котором вызван этот метод. Это позволяет синхронизировать выполнение потоков: основной поток может приостановиться и дождаться, пока дочерний поток выполнит свою задачу.
Например, если у вас есть поток, который выполняет длительную операцию, и вы хотите, чтобы основной поток продолжил работу только после её завершения, вызываете join() на этом потоке.
Пример:
Thread t = new Thread(() -> {
// Долгая операция
System.out.println("Поток начал работу");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Поток завершил работу");
});
t.start();
try {
t.join(); // Ждем завершения потока t
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Основной поток продолжил работу после завершения t");
Таким образом, join() помогает избежать проблем с несогласованностью данных и обеспечивает правильный порядок выполнения в многопоточном приложении.