Thread Synchronization in java (ebook download)
If a Java class has synchronized methods, each object of the class behaves like a monitor: The synchronized methods guarantee mutual exclusion of the accessing threads. A thread can wait for a condition within a synchronized method until another thread notifies the waiting thread that the condition may be fulfilled..
For more information see this