并发编程之synchronized的工作模式monitor
一、ObjectMonitor原理图
二、原理解释
- 持有锁的线程发现条件不足,调用wait,即进入Waitset变为waiting状态
- blocked和waiting的线程都处于阻塞状态,不占用cpu时间片
- blocked的线程会在持有锁的线程释放锁时被唤醒
- waiting线程会在持有锁的线程调用 notify或者notifyAll时唤醒,但唤醒后不意味着立刻获得锁,仍然需要进入EntryList重新竞争
2021-11-05 22:15:37