日期:2014-05-20  浏览次数:20720 次

答案是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静态。
------解决方案--------------------
这个题好像问过了。记得书上讲得很清楚。