任何人都可以幫助我解決以下問題嗎?OCJP Dumps Thread
public class Starter extends Thread{
private int x=2;
public static void main(String[] args) throws Exception{
new Starter().makeItSo();
}
public Starter(){
x=5;
start();
}
public void makeItSo() throws Exception {
join();
x=x-1;
System.out.println(x);
}
public void run(){x*=2;}
}
A. 4
B. 5
C. 8
D. 9
E.編譯失敗
F.一個例外是在拋出運行時間
G.這是不可能確定的
在轉儲答案是D.我知道一個新的線程是在新的Starter()。makeItSo中創建的。但任何人都可以告訴我爲什麼run()中的x * = 2在方法makeItSo中的x = x-1和System.out.println(x)之間執行?
什麼是答案D?你爲什麼認爲任何東西之間執行任何事情? –