4.锁降级
降级是指当前把持住写锁,再获取到读锁,随后释放(先前拥有的)写锁的过程 。
锁降级过程中的读锁的获取是否有必要,答案是必要的 。主要是为了保证数据的可见性,如果当前线程不获取读锁而直接释放写锁,假设此刻另一个线程获取的写锁,并修改了数据,那么当前线程就步伐感知到线程T的数据更新,如果当前线程遵循锁降级的步骤,那么线程T将会被阻塞,直到当前线程使数据并释放读锁之后,线程T才能获取写锁进行数据更新 。
5.读锁与写锁的整体流程

文章插图
读写锁总结本篇详细介绍了ReentrantReadWriteLock的特征、实现、锁的获取过程,通过4个关键点的核心设计:
- 读写状态的设计
- 写锁的获取与释放
- 读锁的获取与释放
- 锁降级
作者简介陈睿|mikechen,10年+大厂架构经验,《BAT架构技术500期》系列文章作者,专注于互联网架构技术 。
阅读mikechen的互联网架构更多技术文章合集
Java并发|JVM|MySQL|Spring|Redis|分布式|高并发
【Java 读写锁 ReadWriteLock 原理与应用场景详解】
经验总结扩展阅读
- 怎么取消锁屏的时间
- 为什么阿里Java开发手册不推荐使用Timestamp
- 大华海康NVR录像JAVA下载及WEB播放
- 强人锁男是什么意思?
- 电影宫锁沉香剧情介绍?
- 宫锁沉香是电视剧还是电影?
- 天选cp锁了是什么意思?
- 饭圈锁了是什么意思?
- 锁了是什么意思?
- cp锁了是什么意思?