9

の書き込みロックは、呼び出し元のスレッドがそのロックを保持しているかどうかを確認ReentrantReadWriteLockする方法を提供することがわかりました。isHeldByCurrentThread()

isHeldByCurrentThread()ただし、読み取りロックに対応する方法はありません。なぜだめですか?

4

2 に答える 2

16

答えは、彼がこの問題に対して与えたDoug Leasのコメントにあると思います:http: //bugs.sun.com/bugdatabase/view_bug.do?bug_id= 6207928

DougLeaは次のように書いています。

現在の設計と動作は意図的なものです。読み取りロックは通常、所有権の概念を持つように定義されていないため、所有権をテストすることはできません。…JSR166EGは、スレッドごとの読み取り保留追跡をオプションでサポートするためのいくつかの要求を受け取りました。これを行うと、ロックオーバーヘッドが大幅に増加するため、オプションの構築パラメーターで管理する必要があります。調査中です。

于 2012-12-18T17:21:09.587 に答える
3

ReentrantReadWriteLock.getReadHoldCount() が仕事をしているようです。

于 2013-07-02T23:43:55.987 に答える