ReentrantReadWriteLock深度介绍
一、ReentrantReadWriteLock是什么,他的特性是什么?
- 锁:可重入的读写锁
- 可重入:类似synchronized,如果不支持读锁重入,会死锁
- 读写分离:两把锁隔离,提高锁效率,读同步,读写互斥,写写互斥,读读不互斥
- 支持 fair unfair
- 支持锁降级,不支持升级
为支持降级,不支持升级?请读者思考?
二、ReentrantReadWriteLock类继承关系,与ReentrantLock有关系吗?
- ReentrantReadWriteLock类继承关系图如下
- ReentrantLock类继承关系图如下
- 他们的实现都是基于底层的AQS
三、由于读锁比较复杂,我暂时画了获取读锁的流程,如果读懂读锁的获取流程,写锁的流程就超级容易
四、上述流程我已经讲述很详细,如果有些不清楚的可以结合源码阅读,或者 直接看我录制好的视频,边听边看边思考,相信终究会理解。(具体视频地址:http://edu1.mimixuetang.com/#/home,先注册再到并发编程里观看哦。不清楚的同学可以留言哦)