Hallo,
ich möchte gerne 2 Threads synchronisieren die abwechselnd zwei unterschiedliche Strings ausgeben. Dazu habe ich folgenden Code geschrieben:
[HIGHLIGHT="Java"]public class Speaker extends Thread {
private String text;
public Speaker(String text) {
this.text = text;
}
public static void main(String args[]) {
String a = "Entweder -";
String b = "oder! \n";
Speaker one = new Speaker(a);
Speaker two = new Speaker(b);
one.start();
two.start();
}
public void run(){
this.ausgabe();
}
public synchronized void ausgabe() {
System.out.print(this.text);
}[/HIGHLIGHT]
Ich denke das Ganze funktioniert nicht, weil die Funktion ausgabe natürlich nur in dem jeweiligen Thread gelockt ist. Mein Ziel ist wie beschrieben die korrekte Ausgabe "Entweder - oder!".
Kann mir jmd sagen von mein Fehler liegt?
Mfg stonedzytode
ich möchte gerne 2 Threads synchronisieren die abwechselnd zwei unterschiedliche Strings ausgeben. Dazu habe ich folgenden Code geschrieben:
[HIGHLIGHT="Java"]public class Speaker extends Thread {
private String text;
public Speaker(String text) {
this.text = text;
}
public static void main(String args[]) {
String a = "Entweder -";
String b = "oder! \n";
Speaker one = new Speaker(a);
Speaker two = new Speaker(b);
one.start();
two.start();
}
public void run(){
this.ausgabe();
}
public synchronized void ausgabe() {
System.out.print(this.text);
}[/HIGHLIGHT]
Ich denke das Ganze funktioniert nicht, weil die Funktion ausgabe natürlich nur in dem jeweiligen Thread gelockt ist. Mein Ziel ist wie beschrieben die korrekte Ausgabe "Entweder - oder!".
Kann mir jmd sagen von mein Fehler liegt?
Mfg stonedzytode
Zuletzt bearbeitet von einem Moderator: