国产精品免费嫩草研究院|无遮羞动漫在线观看AV|国产麻豆精品传媒AV国产在线|村在线观看|寂寞情人1正版|韩国床震韩国床震古|精品系列专区久久

Java 讀寫鎖 ReadWriteLock 原理與應用場景詳解( 三 )


 
4.鎖降級
降級是指當前把持住寫鎖,再獲取到讀鎖,隨后釋放(先前擁有的)寫鎖的過程 。
鎖降級過程中的讀鎖的獲取是否有必要,答案是必要的 。主要是為了保證數據的可見性,如果當前線程不獲取讀鎖而直接釋放寫鎖,假設此刻另一個線程獲取的寫鎖,并修改了數據,那么當前線程就步伐感知到線程T的數據更新,如果當前線程遵循鎖降級的步驟,那么線程T將會被阻塞,直到當前線程使數據并釋放讀鎖之后,線程T才能獲取寫鎖進行數據更新 。
 
5.讀鎖與寫鎖的整體流程

Java 讀寫鎖 ReadWriteLock 原理與應用場景詳解

文章插圖
讀寫鎖總結本篇詳細介紹了ReentrantReadWriteLock的特征、實現、鎖的獲取過程,通過4個關鍵點的核心設計:
  • 讀寫狀態的設計
  • 寫鎖的獲取與釋放
  • 讀鎖的獲取與釋放
  • 鎖降級
從而才能實現:共享資源有讀和寫的操作,且寫操作沒有讀操作那么頻繁的應用場景 。
作者簡介陳睿|mikechen,10年+大廠架構經驗,《BAT架構技術500期》系列文章作者,專注于互聯網架構技術 。
閱讀mikechen的互聯網架構更多技術文章合集
Java并發|JVM|MySQL|Spring|Redis|分布式|高并發
【Java 讀寫鎖 ReadWriteLock 原理與應用場景詳解】

經驗總結擴展閱讀