Hallo Leute,
ich habe folgenden einfachen Thread:
Der durch zwei Threadobjekte verwendet wird:
Die Methode "zaehlen" sollte eigentlich durch "synchronized" nur von einem Thread gleichzeitig ausgeführt werden dürfen.
Was ich nicht verstehe ist, warum in der Console die Zahlenreihen nicht nacheinander sondern gemischt ausgegeben werden. Die Threads "zahlen" und "zahlen2" greifen also im Wechsel auf die Methode "zaehlen" zu. Aber das wollte ich durch "synchronized" eigentlich verhindern.
Weiss jemand Rat?
ich habe folgenden einfachen Thread:
Code:
public class ZaehlThread extends Thread{
public void run(){
zaehlen();
}
synchronized void zaehlen(){
for(int i=0; i<= 200; i++)
System.out.println(i);
}
}
Code:
public class FirstThread {
public static void main(String[] args) {
ZaehlThread zahlen = new ZaehlThread();
ZaehlThread zahlen2 = new ZaehlThread();
zahlen.start();
zahlen2.start();
}
}
Die Methode "zaehlen" sollte eigentlich durch "synchronized" nur von einem Thread gleichzeitig ausgeführt werden dürfen.
Was ich nicht verstehe ist, warum in der Console die Zahlenreihen nicht nacheinander sondern gemischt ausgegeben werden. Die Threads "zahlen" und "zahlen2" greifen also im Wechsel auf die Methode "zaehlen" zu. Aber das wollte ich durch "synchronized" eigentlich verhindern.
Weiss jemand Rat?