任何人都可以帮助我解决以下问题吗?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?你为什么认为任何东西之间执行任何事情? –