ReentrantLock.IsHeldByCurrentThread プロパティ

定義

このロックが現在のスレッドによって保持されている場合にクエリを実行します。

public virtual bool IsHeldByCurrentThread { [Android.Runtime.Register("isHeldByCurrentThread", "()Z", "GetIsHeldByCurrentThreadHandler")] get; }
[<get: Android.Runtime.Register("isHeldByCurrentThread", "()Z", "GetIsHeldByCurrentThreadHandler")>]
member this.IsHeldByCurrentThread : bool

プロパティ値

true 現在のスレッドがこのロックを保持している場合は 、 false それ以外の場合は

属性

注釈

このロックが現在のスレッドによって保持されている場合にクエリを実行します。

組み込みのモニター ロックの Thread#holdsLock(Object) メソッドと同様に、このメソッドは通常、デバッグとテストに使用されます。 たとえば、ロックが保持されている間にのみ呼び出す必要があるメソッドは、次のようにアサートできます。

{@code
            class X {
              final ReentrantLock lock = new ReentrantLock();
              // ...

              public void m() {
                  assert lock.isHeldByCurrentThread();
                  // ... method body
              }
            }}

また、再入可能ロックが再入可能でない方法で使用されるようにするためにも使用できます。次に例を示します。

{@code
            class X {
              final ReentrantLock lock = new ReentrantLock();
              // ...

              public void m() {
                  assert !lock.isHeldByCurrentThread();
                  lock.lock();
                  try {
                      // ... method body
                  } finally {
                      lock.unlock();
                  }
              }
            }}

の Java ドキュメント java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread()

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象