Signal-Wait Synchronization
- Root class Object implements
- wait()
- wait(timeout)
- notify() - wake up at most one waiting thread
- notifyall() - wake up all waiting threads
- These methods can only be called while holding the lock for the object (runtime check).