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?
Compilation fails.
An exception is thrown at runtime
Synchronizing the run() method would make the class thread-safe.
The data in variable "x" are protected from concurrent access problems.
Declaring the doThings() method as static would make the class thread-safe.
Wrapping the statements within doThings() in a synchronized(new Object()) { } block would make the classthread-safe.