Java / Java Multithreading
Why wait, notify and notifyAll are declared in Object class and not in Thread class?
Every Object is associated with a monitor, only one thread can hold the monitor at a time. Acquiring the object monitor allow thread to hold lock on object. These methods are not called on the thread as it does not have its own lock.
As the monitor is with the object, wait is called on the object to have the thread move to wait state on that object. Similarly notify/notifyAll is called on the object to notify the waiting thread(s).
More Related questions...