![](/img/trans.png)
[英]Is lock returned by ReentrantReadWriteLock equivalent to it's read and write locks?
[英]Are read and write locks in ReentrantReadWriteLock somehow related?
請多解釋一下合同。 我無法弄清楚ReentrantReadWriteLock
包含的兩個鎖是否以某種方式相關? 或者這些只是一捆兩個正常的鎖?
它允許多個線程同時讀取資源,但需要線程等待獨占鎖才能寫入資源。
規則是:
在內部,鎖定狀態(c)由int值維護。 在這種情況下,由於我們有讀寫鎖,因此它在邏輯上分為兩個短路:較低的一個表示獨占(寫入)鎖定保持計數,而較高的一個表示共享(讀取器)保持計數。
假設當前的鎖定狀態是c = xxxx xxxx xxxx xxxx yyyy yyyy yyyy yyyy那么讀取器鎖定數是高位xxxx xxxx xxxx xxxx
作家鎖的數量是低位yyyy yyyy yyyy yyyy
如果線程正在等待Read Lock它是共享的,但是當線程想要獲取寫鎖定時,只允許該線程進行與互斥相同的訪問。
因此允許任何一個操作。 if lock is held by readers and thread request write lock no more readers are allowed to acquire read lock until thread which has acquired write lock release it
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.