Java Programming - Threads - Discussion


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.

Answer: Option B


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.

Puneet Bagewdi said: (Oct 31, 2012)  
Does a thread releases its lock when wait() is called on it ?

Post your comments here:

Name *:

Email   : (optional)

» Your comments will be displayed only after manual approval.