пример Exchenger:
public class ExchengerExample {
public static void main(String[] args) {
Exchanger<String>exchanger = new Exchanger<>();
new Mike(exchanger);
new Form(exchanger);
}
static class Mike extends Thread {
private final Exchanger<String> exchanger;
Mike(Exchanger<String> exchanger) {
this.exchanger = exchanger;
start();
}
@Override
public void run() {
try {
exchanger.exchange("Привет ! меня зовут Майк!");
sleep(3000);
exchanger.exchange("Мне 20 лет !");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
static class Form extends Thread {
private final Exchanger<String> exchanger;
Form(Exchanger<String> exchanger) {
this.exchanger = exchanger;
start();
}
@Override
public void run() {
try {
System.out.println(exchanger.exchange(null));
System.out.println(exchanger.exchange(null));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}