鉴于:
public class TestSeven extends Thread {
private static int x;
public synchronized void doThings() {
int current = x;
current++;
x = current;
}
public void run() {
doThings();
}
}
哪个论述是对的?
A. 编译失败。
B. 运行时抛出异常。
C. 同步 run() 方法将使类线程安全。
D. 变量“x”中的数据受到保护,不会出现并发访问问题。
E. 将 doThings() 方法声明为静态将使类成为线程安全的。
F. 将 doThings() 中的语句包装在 synchronized(new Object()) { } 块中将使类成为线程安全的。
将 doThings() 标记为同步以使该类线程安全还不够吗?我看到正确答案是 D,但这个问题的模型答案是 E,但我不明白为什么?