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()
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.