Java Review - 并发编程_StampedLock锁探究
生活随笔
收集整理的這篇文章主要介紹了
Java Review - 并发编程_StampedLock锁探究
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 概述
- 三種讀寫模式的鎖
- 寫鎖writeLock
- 悲觀讀鎖readLock
- 樂觀讀鎖tryOptimisticRead
概述
StampedLock是并發包里面JDK8版本新增的一個鎖,該鎖提供了三種模式的讀寫控制, 當調用獲取鎖的系列函數時,會返回一個long 型的變量,我們稱之為戳記(stamp),這個戳記代表了鎖的狀態。
其中try系列獲取鎖的函數,當獲取鎖失敗后會返回為0的stamp值。 當調用釋放鎖和轉換鎖的方法時需要傳入獲取鎖時返回的stamp值。
三種讀寫模式的鎖
StampedLock提供的三種讀寫模式的鎖分別如下
- 寫鎖writeLock
- 悲觀讀鎖readLock
- 樂觀讀鎖tryOptimisticRead
寫鎖writeLock
寫鎖writeLock:是一個排它鎖或者獨占鎖,某時只有一個線程可以獲取該鎖,當一個線程獲取該鎖后,其他請求讀鎖和寫鎖的線程必須等待,這類似于ReentrantReadWriteLock的寫鎖(不同的是StampedLock寫鎖是不可重入鎖);
當目前沒有線程持有讀鎖或者寫鎖時才可以獲取到該鎖。
請求該鎖成功后會返回一個stamp變量用來表示該鎖的版本,當釋放該鎖時需要調用unlockWrite方法并傳遞獲取鎖時的stamp參數。
并且它提供了非阻塞的tryWriteLock方法。
悲觀讀鎖readLock
樂觀讀鎖tryOptimisticRead
總結
以上是生活随笔為你收集整理的Java Review - 并发编程_StampedLock锁探究的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java Review - 并发编程_C
- 下一篇: Java Review - 并发编程_L