ILock.LockInterruptibly Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает блокировку, если текущий поток не прерван потоком# прерывания.
[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void LockInterruptibly ();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member LockInterruptibly : unit -> unit
- Атрибуты
Исключения
Значение , если текущий поток прерван при получении блокировки (и прерывание приобретения блокировки поддерживается)
Комментарии
Получает блокировку, если текущий поток не прерван потоком# прерывания.
Получает блокировку, если она доступна и возвращается немедленно.
Если блокировка недоступна, текущий поток становится отключенным для целей планирования потоков и находится в состоянии спячки до тех пор, пока не произойдет одно из двух действий:
<ul><li>Блокировка приобретается текущим потоком; или <li>Некоторые другие потоки#прерывания прерывает текущий поток, а также поддерживается прерывание приобретения блокировки. </ul>
Если текущий поток: <ul><li>имеет его прерванное состояние при входе в этот метод; или <li>является Thread#прерывание при получении блокировки и прерывание приобретения блокировки поддерживается, /ul> InterruptedException
затем возникает, <а состояние прерванного текущего потока очищается.
<Рекомендации< по реализации b>/b>
Возможность прерывания приобретения блокировки в некоторых реализациях может оказаться невозможной, и, если это возможно, может быть дорогой операцией. Программист должен знать, что это может быть так. Реализация должна документировать, когда это так.
Реализация может предпочестить реагирование на прерывание по сравнению с обычным возвратом метода.
Реализация Lock
может обнаруживать ошибочное использование блокировки, например вызов, который приведет к взаимоблокировке, и может вызвать исключение (снято) в таких обстоятельствах. Обстоятельства и тип исключения должны быть задокументированы этой Lock
реализацией.
Документация по Java для java.util.concurrent.locks.Lock.lockInterruptibly()
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.