Waiting and Notification
notify - resulting actions
- remove arbitrary thread T from the wait queue
- T must re-obtain the synchronization lock for the target object
- resume T at the point of its wait
notifyAll works in the same way, but the steps occur for all threads in the wait queue
wait with time parameter - notify is invoked automatically when the specified time passes