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()

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于