Warum gibt dieses Java Programm diese Ausgabe aus?

... komplette Frage anzeigen

2 Antworten

Die Ausgabe verhält sich so komisch, weil zwei Threads, die "gleichzeitig" (wenn Threads gleichzeitig laufen, laufen sie eigentlich ganz schnell abwechseld) den gleichen Counter "cnt" in deiner main Methode benutzen. Wenn du den beiden Threads jeweils ihren eigenen Counter gibst, läuft alles, wie es gedacht ist.

public static void main(String[] args) {
Thread t1 = new Thread(new Counter());
Thread t2 = new Thread(new Counter());
t1.start();
t2.start();
}

Ausgabe:

Thread-0: Counter = 1

Thread-0: Counter = 2

Thread-0: Counter = 3

Thread-0: Counter = 4

Thread-1: Counter = 1

Thread-0: Counter = 5

Thread-1: Counter = 2

Thread-1: Counter = 3

Thread-1: Counter = 4

Thread-1: Counter = 5



Ich hoffe, ich konnte helfen.

Falls du noch fragen hast, kommentier einfach diese Antwort.

LG

Antwort bewerten Vielen Dank für Deine Bewertung

Ich verstehe deine Frage noch nicht ganz. Was meinst du mit Stelle 1 und Stelle 2? Die beiden Threads in deiner main Methode? Da der Code abfotografiert ist, frage ich mich außerdem: führst du den Code selber aus oder versuchst du nur eine Schulaufgabe zu lösen?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Alinchen24
07.08.2016, 09:09

Es sind Ferien xD im Code steht ja stelle 1 und 2 und es geht darum das dieser thread sicher wird xD ich Habe den Code auch ein programmiert aber ich verstehe nicht wieso er thread 0 5 mal abgibt xD usw ^^ also einfach die Reihenfolge wie der Compiler diesen ausführt und wieso er mir diese Ausgabe zurückgibt ^^

0

Was möchtest Du wissen?