我在eclipse和Netbeans IDE中得到了這個多線程代碼的不同輸出,我不知道它是怎麼回事,以及這背後的邏輯是什麼。我在Eclipse和Netbeans中獲得了不同的java多線程程序輸出?
而且每當我執行這段代碼時,它都會顯示不同的輸出,Plz Help Me。
公共類MyThread2在Eclipse繼承Thread
{
public void run()
{
`System.out.println("r1");` ``
try ``
{
Thread.sleep(500);
}
catch(Exception e)
{
}
System.out.println("r2");
}
public static void main(String args[])
{
MyThread2 t1=new MyThread2();
MyThread2 t2=new MyThread2();
t1.start();
t2.start();
System.out.println(t1.isAlive());
System.out.println(t2.isAlive());
}
}
輸出:
R1
R1
真正
真正
R2
R2
與輸出的Netbeans:
R1
真正
真正
R1
R2
R2
線程是不確定的,尤其是當您涉及到競爭條件時。在我看來,這並不奇怪,也不是一個問題。 – awksp
甚至在Eclipse中運行該程序幾次。你也可能會看到不同的結果。 – Manish
線程訪問方法或變量由JVM決定。同時使用同步來使單線程訪問方法。 – AJJ