ReentrantReadWriteLock深度介绍

一、ReentrantReadWriteLock是什么,他的特性是什么?

  • 锁:可重入的读写锁
  • 可重入:类似synchronized,如果不支持读锁重入,会死锁
  • 读写分离:两把锁隔离,提高锁效率,读同步,读写互斥,写写互斥,读读不互斥
  • 支持 fair unfair
  • 支持锁降级,不支持升级

为支持降级,不支持升级?请读者思考?

二、ReentrantReadWriteLock类继承关系,与ReentrantLock有关系吗?

  • ReentrantReadWriteLock类继承关系图如下

ReentrantReadWriteLock深度介绍

  • ReentrantLock类继承关系图如下

ReentrantReadWriteLock深度介绍

  • 他们的实现都是基于底层的AQS

三、由于读锁比较复杂,我暂时画了获取读锁的流程,如果读懂读锁的获取流程,写锁的流程就超级容易

ReentrantReadWriteLock深度介绍

ReentrantReadWriteLock深度介绍

 

ReentrantReadWriteLock深度介绍

四、上述流程我已经讲述很详细,如果有些不清楚的可以结合源码阅读,或者 直接看我录制好的视频,边听边看边思考,相信终究会理解。(具体视频地址:http://edu1.mimixuetang.com/#/home,先注册再到并发编程里观看哦。不清楚的同学可以留言哦)

ReentrantReadWriteLock深度介绍