wait( ) tells the calling thread to give up the monitor and go to sleep until some other
thread enters the same monitor and calls notify( ). notify( ) wakes up the first thread that called wait( ) on the same object. notifyAll( ) wakes up all the threads that called wait( ) on the same object. The
highest priority thread will run first.
理解, 其实就是在一个单一大循环里用状态机来管理并发协作-也就是线程。