Java Programming - Threads - Discussion

Discussion Forum : Threads - General Questions (Q.No. 12)
12.

Assume the following method is properly synchronized and called from a thread A on an object B:

wait(2000);

After calling this method, when will the thread A become a candidate to get another turn at the CPU?

After thread A is notified, or after two seconds.
After the lock on B is released, or after two seconds.
Two seconds after thread A is notified.
Two seconds after lock B is released.
Answer: Option
Explanation:

Option A. Either of the two events (notification or wait time expiration) will make the thread become a candidate for running again.

Option B is incorrect because a waiting thread will not return to runnable when the lock is released, unless a notification occurs.

Option C is incorrect because the thread will become a candidate immediately after notification, not two seconds afterwards.

Option D is also incorrect because a thread will not come out of a waiting pool just because a lock has been released.

Discussion:
4 comments Page 1 of 1.

Ashish said:   9 years ago
If Thread A is notified first, can it get CPU turn before the expiration of 2 sec?

D.raj said:   9 years ago
Either of the two events (notification or wait time expiration) will make the thread become a candidate for running again.

Dinesh said:   9 years ago
Give me an explanation that how it works?

Vibhor said:   1 decade ago
Please give me more explanation about this question.

Post your comments here:

Your comments will be displayed after verification.