Hallo,
ich habe fragen zur Console-Ausgabe. Ich habe folgendes Programm:
Wenn ich die Zeile Thread.sleep(1000);also main-Thread schlafe für eine Sekunde auskommentiere, habe ich die Ausgabe "XYZ", sonst "ABC". Wie soll man das verstehen? Die Zeile mit td.start() ist doch davor und Thread td sollte den alten Wert "ABC" ausgeben müssen?
ich habe fragen zur Console-Ausgabe. Ich habe folgendes Programm:
Code:
public class XMapp implements Runnable{
static String s="ABC";
public void run(){
synchronized(this){
System.out.print(s);
}
}
public static void main(String args[])throws Exception{
Thread td=new Thread(new XMapp());
synchronized(td){
td.start();
//Thread.sleep(1000);
s="XYZ";
}
}
}
Wenn ich die Zeile Thread.sleep(1000);also main-Thread schlafe für eine Sekunde auskommentiere, habe ich die Ausgabe "XYZ", sonst "ABC". Wie soll man das verstehen? Die Zeile mit td.start() ist doch davor und Thread td sollte den alten Wert "ABC" ausgeben müssen?