三.ReetrantLock选择性通知与公平锁,及部分特性与synchronized的比较
一.写在开头
通过一个西游记里头经典的桥段,太上老君炼丹,初步介绍ReetrantLock的选择性通知,ReetrantLock公平锁/非公平锁。希望能够帮助到点进来的你。配合跑代码看结果效果更佳。
二.太上老君炼丹的故事
书接上回,太上老君者,大道之主宰...(此处省略一万字)...玉皇大帝祭出了斩妖刀,也无法将老孙灭杀。太上老君站了出来,请玉帝将老孙交付于他,只要他将老孙放进炼丹炉用三昧真火烧炼,即可灭杀老孙。此时,太上老君带着他的三个徒弟来到了炼丹洞府:都率宫!
(正片开始!)太上老君有三个徒弟A,B,C,辅助他炼化妖猴。
徒弟A | 徒弟B | 徒弟C | |
职责 | 负责开炉 | 负责把悟空扔进炼丹炉 | 负责封炉 |
炼化流程:徒弟们先各自准备,准备好后,太上老君一声令下。徒弟A开炉-->徒弟B把悟空扔进炼丹炉-->徒弟C封炉,分工明确
Demo中,太上老君为test主线程,启动三个徒弟线程ABC,线程A B C先等待,等主线程signalAll()唤醒所有等待线程。
运行截图: