Hallo Liebe Java-Gemeinde
Seit neuestem habe ich es mit einem Phänomen zu tun, was mir noch nie vorher begegnet ist und welches ich nicht erklären kann. Vielleicht stehe ich aber auf einfach wie ein Ochs vorm Berg und ihr könnt mir helfen.
Ich habe folgende 2 kleine Codes:
Und diesen hier:
2 Probleme: 1.) Lasse ich das Programm so laufen, wird "0 Die Schlange wird immer voller." ausgegeben.
Warum 0 ? Es müsste doch 5 sein?! 2.) Kommentiere ich die Zeile
jedoch aus, wird NICHTS ausgegeben.
Kann mir das jemand erklären? Ich wäre sehr dankbar!
EDIT: Ich habe die Vermutung dass der Thread zu lange braucht und das sysout in der Main vorher gemacht wird, richtig?
Seit neuestem habe ich es mit einem Phänomen zu tun, was mir noch nie vorher begegnet ist und welches ich nicht erklären kann. Vielleicht stehe ich aber auf einfach wie ein Ochs vorm Berg und ihr könnt mir helfen.
Ich habe folgende 2 kleine Codes:
Java:
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static Queue<String> schlange = new LinkedList<String>();
public static void main(String[] args) {
QueueWriter schlangenfueller = new QueueWriter();
Thread t1 = new Thread(schlangenfueller);
t1.start();
System.out.println(schlange.size());
while(!schlange.isEmpty()){
String ausgabe = schlange.poll();
System.out.println(ausgabe);
}
}
}
Und diesen hier:
Java:
public class QueueWriter implements Runnable {
@Override
public void run() {
Main.schlange.add("Die");
Main.schlange.add("Schlange");
Main.schlange.add("wird");
Main.schlange.add("immer");
Main.schlange.add("voller.");
}
}
2 Probleme: 1.) Lasse ich das Programm so laufen, wird "0 Die Schlange wird immer voller." ausgegeben.
Warum 0 ? Es müsste doch 5 sein?! 2.) Kommentiere ich die Zeile
Java:
System.out.println(schlange.size());
Kann mir das jemand erklären? Ich wäre sehr dankbar!
EDIT: Ich habe die Vermutung dass der Thread zu lange braucht und das sysout in der Main vorher gemacht wird, richtig?
Zuletzt bearbeitet: