這是一個測試問題。我已經多次運行代碼並獲得相同的答案:999999.他們說,即使在編寫runLoop方法時出現同步,此代碼也不會每次都產生相同的結果。我錯過了什麼?非線程安全代碼意外地給出了可重複的結果
public class B extends Thread{
static int a = 0;
public static void main(String[] Args){
B MyB = new B();
MyB.start();
runLoop(1000000);
System.out.println(a);
}
public static synchronized void runLoop(int b){
for(int i = 0; i<b; i++){
a=i;
}
}
public void run(){
runLoop(12345678);
}
}
我跑了代碼不同的時間,總是得到不同的答案 –
運行多個線程並報告結果後。 –
@RomanC你回答我的評論?我跑了很多線程... –