Friday, 22 April 2016

Why wait(), notify() and notifyAll() methods have to be called from synchronized method or block ?


When a Thread calls wait() on any Object, it must have the monitor on the Object that it will leave and goes in wait state until any other thread call notify() on this Object.

Similarly, when a thread calls notify() on any Object, it leaves the monitor on the Object and other waiting threads can get the monitor on the Object.


Since all these methods require Thread to have the Object monitor, that can be achieved only by synchronization, they need to be called from synchronized method or block.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.