Встречается на собеседованиях • сегодня
Что такое Exchanger
Exchanger — это синхронизатор из пакета `java.util.concurrent`, позволяющий двум потокам обмениваться данными в определенной точке выполнения. Оба потока блокируются при вызове `exchange()` до момента, пока оба не вызовут этот метод, после чего происходит обмен объектами.
Пример:
```java
Exchanger exchanger = new Exchanger<>();
new Thread(() -> {
try {
String received = exchanger.exchange("Data from Thread 1");
System.out.println("Thread 1 received: " + received);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}).start();
new Thread(() -> {
try {
String received = exchanger.exchange("Data from Thread 2");
System.out.println("Thread 2 received: " + received);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}).start();
```
Вывод:
```
Thread 1 received: Data from Thread 2
Thread 2 received: Data from Thread 1
```
Полезен для задач типа "производитель-потребитель" или pipeline-обработки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы