首頁  >  文章  >  Java  >  Java中不同鎖定模式下插隊的行為分析。

Java中不同鎖定模式下插隊的行為分析。

PHPz
PHPz轉載
2023-04-23 09:13:171134瀏覽

1、ReentrantReadWriteLock 可以設定公平鎖定模式和非公平鎖定模式。

// 公平锁模式
ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(true);
//非公平锁模式 默认情况
ReentrantReadWriteLock reentrantReadWriteLock = new ReentrantReadWriteLock(false);

在獲得公平鎖之前,先檢查readerShouldBlock()方法,在取得寫鎖之前,先檢查writerShouldBlock()方法,然後再決定是排隊還是插隊。

2、非公平鎖定模式下, writerShouldBlock()和readerShouldBlock()實作

final boolean writerShouldBlock() {
    return false; // writers can always barge
}
final boolean readerShouldBlock() {
    return apparentlyFirstQueuedIsExclusive();
}

非公平鎖定可以在取得寫鎖時插隊。讀鎖時使用策略決定。

以上是Java中不同鎖定模式下插隊的行為分析。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除