Threads - Programming

Q1:

Which statement is true?

A A static method cannot be synchronized.

B If a class has synchronized code, multiple threads can still access the nonsynchronized code.

C Variables can be protected from concurrent access problems by marking them with the synchronized keyword.

D When a thread sleeps, it releases its locks.

ANS:B - If a class has synchronized code, multiple threads can still access the nonsynchronized code.

B is correct because multiple threads are allowed to enter nonsynchronized code, even within a class that has some synchronized methods. A is incorrect because static methods can be synchronized; they synchronize on the lock on the instance of class java.lang.Class that represents the class type. C is incorrect because only methods—not variables—can be marked synchronized. D is incorrect because a sleeping thread still maintains its locks.