簡體   English   中英

java同步中讀鎖的目的是什么

[英]What is purpose of Read Lock in java synchronization

我是多線程新手,我很困惑,為什么在 Java 同步中需要讀鎖。我也理解寫鎖的用例。在這種情況下,我們需要限制線程的讀取器訪問。 假設我們在 java 中沒有讀鎖,那么問題是什么。

假設有共享資源 R。一個線程 T1 正在讀取它並且它沒有被鎖定,因為在 java 中沒有讀取鎖(正如你所說)同時第二個線程嘗試訪問 R1 以對其進行寫入。 由於沒有附加到 R1 的信息表明線程當前正在讀取它,第二個線程將獲得寫鎖並開始寫入它,這是意外的。 讀鎖是附加在資源上的額外信息,它告訴后面的線程資源已經可以讀、等待寫訪問或者你只能訪問讀。 讀鎖可以被多個線程訪問。

來自Java 11 文檔

只要沒有寫者,讀鎖就可以被多個讀者線程同時持有。 寫鎖是獨占的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM