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

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к