【數據庫】【多線程】讀寫鎖


讀寫鎖

圖解讀鎖、寫鎖的持有和堵塞情況,虛線為讀鎖、實線為寫鎖,綠色為不堵塞、紅色為堵塞。

Java的ReentrantReadWriteLock的部分邏輯解析

除了數據庫有讀寫鎖,Java也有讀寫鎖的線程,這里簡單解析ReentrantReadWriteLock,當然,了解ReentrantReadWriteLock的前提要了解ReentrantLock的實現(本文暫不涉及)。

用int類型的state維護讀鎖和寫鎖的狀態

用什么維護讀寫鎖的狀態的呢?用一個int類型的變量維護,高16位維護讀鎖,低16維護寫鎖。

獲取寫鎖的流程

簡單圖解解析ReentrantReadWriteLock.Sync.tryAcquire(int acquires)的邏輯,圖一是較詳細的圖解,圖二是較白話的圖解:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM