2010-04-25 56 views
0

我一直在尋找答案,但沒有喜悅。在Java中,使用由ReentrantReadWriteLock創建的鎖等同於獲取由readLock.lock()和writeLock.lock()返回的讀鎖和寫鎖?換句話說,我是否期望通過ReentrantReadWriteLock進行同步來請求和保存與ReentrantReadWriteLock關聯的讀寫鎖定?由ReentrantReadWriteLock返回的鎖等於它的讀寫鎖嗎?

我的直覺說「不」,因爲任何對象都可以用於同步。我不認爲ReentrantReadWriteLock會有特殊的行爲。但是,特殊行爲是我可能不知道的一個特例。

感謝, 託德

+1

查看源文件'ReentrantReadWriteLock'的內部鎖似乎對'readLock'和'writeLock'沒有任何影響。所以你的直覺似乎是對的。 – 2010-04-25 19:27:59

+0

@binil如果您將您的評論發佈爲答案,我會選擇它。雖然其他發佈的答案在技術上是正確的,但它並沒有直接回答我的問題。謝謝。 – Todd 2010-04-26 16:13:19

回答

1

java.util.concurrent.locks和Java語言鎖的支持是完全不同的機制。

某些靜態分析工具會標記嘗試在Lock對象上使用​​。