黑马视频讲解:https://www.bilibili.com/video/BV16J411h7Rd?p=89
wait notify 原理
- owner线程发现条件不满足,调用wait方法,既会进入Monitor锁中的WaiSet集合中变为WAITING状态
- BLOCKED和WAITING的线程都处于线程阻塞状态,不占用时间片。
- BLOCKED中的线程会在Owner中的线程释放锁时被唤醒并且非公平的去竞争锁。
- WAITING状态的线程会在Owenr中的线程调用notify或者notifyAll时唤醒,但被唤醒后并不会马上获得锁而是进入EntryList中重新竞争。