Java中的鎖——ReentrantReadWriteLock(讀寫鎖)

上一篇裏講的ReentrankLock是一種排他鎖,即同一時間只能有一個線程進入。而讀寫鎖在同一時刻容許多個讀線程訪問,可是在寫線程訪問時,全部的讀線程和其餘線程均被阻塞。讀寫鎖維護了一對鎖,一個讀鎖和一個寫鎖,經過分離讀寫鎖,使得併發性比通常的排它鎖有了很大提高。由於大多數應用場景都是讀多於寫的,所以在這樣的狀況下,讀寫鎖能夠提升吞吐量。下圖描述了關於讀寫鎖的三個特性:公平性、重入性和鎖降級。j
相關文章
相關標籤/搜索