Given:
1. public class TestSeven extends Thread {
2. private static int x;
3. public synchronized void doThings() {
4. int current = x;
5. current++;
6. x = current;
7. }
8. public void run() {
9. doThings();
10. }
11. }
Which statement is true?
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.
Explanation:
E