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

Как реализуешь возможность одного потока дождаться завершения выполнения двух других потоков

Используй Thread.join() или CountDownLatch для синхронизации потоков.

Пример с CountDownLatch:

java
CountDownLatch latch = new CountDownLatch(2); // 2 потока должны завершиться

new Thread(() -> {
    // Логика потока 1  
    latch.countDown();  
}).start();  

new Thread(() -> {
// Логика потока 2
latch.countDown();
}).start();

latch.await(); // Ожидание завершения обоих потоков
System.out.println("Оба потока завершены!");

text

**Пример с `Thread.join()`:**  
```java
Thread t1 = new Thread(() -> { /* Логика потока 1 */ });  
Thread t2 = new Thread(() -> { /* Логика потока 2 */ });  

t1.start();  
t2.start();  

t1.join();  
t2.join();  

System.out.println("Оба потока завершены!");  

CountDownLatch удобнее, если потоки запускаются динамически, а join() проще для фиксированного числа потоков.

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

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

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

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