Ich muss Farben aus der Farbklasse anzeigen, die dreimal angezeigt wird, und ich muss mithilfe von Threads Instanzen von drei verschiedenen Farben hinzufügen. Das Problem ist, dass ich nicht weiß, wie ich anfangen soll, da die dritte Farbe mit der Anzeige beginnen soll wenn einer der ersten fertig ist:
Code: Select all
public class Main {
public static void main(String[] args) throws InterruptedException {
Color color1 = new Color(“Blue”);
Color color2 = new Color(“Red”);
Color color3 = new Color(“White”);
}
}
class Color implements Runnable{
private String color ;
public Color(String color) {
this.color = color;
public void run(){
for (int i = 0; i < 3; i++) {
System.out.println(color);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}
}
}
}
Das Ergebnis, das ich benötige, muss in der Konsole gedruckt werden: 3 Mal Blau, 3 Mal Rot, 3 Mal Weiß, aber wenn entweder Blau oder Rot nicht mehr funktioniert, muss der Thread mit dem Drucken von Weiß beginnen. Die ersten beiden Threads sollten sofort starten, der dritte jedoch erst, wenn einer der ersten beiden Threads seine Arbeit abgeschlossen hat.
Ich habe über die Verwendung von BlockingQueue-Warteschlangen nachgedacht, aber ich Ich bin mir nicht sicher, ob das eine gute Idee ist.