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鎖了是什么意思?
