模式
1.同步模式之保护性暂停
(保护性暂停, 没得到结果就放掉锁对象,不要占着茅坑不拉屎)

1.1 join(timeout)的原理
如果timeout大于0,那么我们就开始计时并且wait,超时就不管了
如果timeout等于0,那么我们就一直wait

1.1 顺序控制: 线程的同步控制
While(!flag)+wait+notify
While(!flag)+condition+await+signalAll
LockSupport.park()+LockSupport.unpark(nextThread)
多个线程呢? waitState+State+nextState+ while(State!=waitState)
2.异步模式之生产/消费者
注意这里锁了messageQueue
(在main中创建了一个唯一实例,所以是线程安全的,多线程用到会互斥)