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 中国語 Web サイトの他の関連記事を参照してください。