語言

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

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於