if you look at the API
doc. at the Object.notify method for example, you can find the following:
A
thread becomes the owner of the object's monitor in one of three ways:
-By executing a synchronized instance method of that object.
-By executing the body of a synchronized statement that synchronizes on the object.
-For objects of type Class, by executing a synchronized static method of that class.
So, what does this mean: That you have to own the thread�s monitor for using notify, for example. Read the API doc carefully for a deep detail of the following methods from Object: notify, wait, notifyAll.