答案是E,为什么?
public class TestSeven extends Thread{
private static int x;
public synchronized void doThing(){
int current=x;
current++;
x=current;
}
public void run(){
doThings();
}
}
A.compilation fails;
B.an exception is thrown at runtime;
C.synchronizing the run() method would make the class thread-safe;
D.the data in variable "x " are protected from concurrent access problems;
E.declaring the doThings() method as static would make the class thread-safe;
F:wrapping the statements within doThings()in a synchronized(new Object()){}block would make the class thread-safe;
------解决方案--------------------选E是因为可以防止多个方法操作变量x,故把方法应声明为static静态。
------解决方案--------------------这个题好像问过了。记得书上讲得很清楚。