Heim  >  Artikel  >  Java  >  Verhaltensanalyse des Warteschlangenspringens unter verschiedenen Sperrmodi in Java.

Verhaltensanalyse des Warteschlangenspringens unter verschiedenen Sperrmodi in Java.

PHPz
PHPznach vorne
2023-04-23 09:13:171188Durchsuche

1. ReentrantReadWriteLock kann den fairen Sperrmodus und den unfairen Sperrmodus festlegen.

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

Bevor Sie die Fair-Sperre erhalten, überprüfen Sie die Methode „readerShouldBlock()“ Bevor Sie die Schreibsperre erhalten, überprüfen Sie zuerst die Methode „writerShouldBlock()“ und entscheiden Sie dann, ob Sie in die Warteschlange einsteigen oder in die Warteschlange springen möchten.

2. Im unfairen Sperrmodus implementieren WriterShouldBlock() und ReaderShouldBlock()

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

unfaire Sperre, um in die Warteschlange zu springen, wenn sie die Schreibsperre erhalten. Verwenden Sie Richtlinienentscheidungen beim Lesen von Sperren.

Das obige ist der detaillierte Inhalt vonVerhaltensanalyse des Warteschlangenspringens unter verschiedenen Sperrmodi in Java.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen