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

Verhaltensanalyse des Warteschlangenspringens unter verschiedenen Sperrmodi in Java.

PHPz
Freigeben: 2023-04-23 09:13:17
nach vorne
1223 Leute haben es durchsucht

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

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

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();
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage