の書き込みロックは、呼び出し元のスレッドがそのロックを保持しているかどうかを確認ReentrantReadWriteLock
する方法を提供することがわかりました。isHeldByCurrentThread()
isHeldByCurrentThread()
ただし、読み取りロックに対応する方法はありません。なぜだめですか?
の書き込みロックは、呼び出し元のスレッドがそのロックを保持しているかどうかを確認ReentrantReadWriteLock
する方法を提供することがわかりました。isHeldByCurrentThread()
isHeldByCurrentThread()
ただし、読み取りロックに対応する方法はありません。なぜだめですか?
答えは、彼がこの問題に対して与えたDoug Leasのコメントにあると思います:http: //bugs.sun.com/bugdatabase/view_bug.do?bug_id= 6207928。
DougLeaは次のように書いています。
現在の設計と動作は意図的なものです。読み取りロックは通常、所有権の概念を持つように定義されていないため、所有権をテストすることはできません。…JSR166EGは、スレッドごとの読み取り保留追跡をオプションでサポートするためのいくつかの要求を受け取りました。これを行うと、ロックオーバーヘッドが大幅に増加するため、オプションの構築パラメーターで管理する必要があります。調査中です。
ReentrantReadWriteLock.getReadHoldCount() が仕事をしているようです。