Ich habe folgenden Code. Der Code erstellt zwei Runnables mit Nachrichten "Hallo" und "Welt" jeweils. Ich erwarte, dass "Hello" mit "World" ausgetauscht wird, aber es funktioniert nicht. Der Code bleibt stecken und der Austausch findet nie statt.Java Exchanger-Beispiel funktioniert nicht
Der Code wurde wie folgt geändert. Es funktioniert jetzt
public class ExchangerExample {
public static void main(String[] args) {
Exchanger<String> exchanger = new Exchanger();
new Thread(() -> {
try {
String message = "Hello";
Object previous = message;
message = exchanger.exchange(message);
System.out.println(previous + " is changed to " + message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
new Thread(() -> {
try {
String message = "World";
Object previous = message;
message = exchanger.exchange(message);
System.out.println(previous + " is changed to " + message);
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
}
}
Ihr Programm funktioniert gut mit mir es print 'Welt ist zu Hallo geändert Hallo ist zu World' geändert! –