ILock.LockInterruptibly 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
除非当前线程被 Thread#中断中断,否则获取锁。
[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
- 属性
例外
如果当前线程在获取锁时中断(并且支持锁定获取中断)
注解
除非当前线程被 Thread#中断中断,否则获取锁。
获取锁(如果可用),并立即返回。
如果锁不可用,则当前线程出于线程计划目的被禁用,并处于休眠状态,直到发生以下两件事之一:
<ul><li>锁由当前线程获取;或者 <li>其他线程 Thread#interrupt 中断中断当前线程,并且支持锁定获取中断。 </ul>
如果当前线程:<ul><li 在进入此方法时设置了中断状态;或者 <li>>是在获取锁时中断的 Thread#interrupt,并且支持锁定获取中断,则会InterruptedException
引发 /ul>,<并清除当前线程中断的状态。
<b>实现注意事项</b>
在某些实现中中断锁获取的能力可能是不可能的,如果可能,可能是一项昂贵的操作。 程序员应注意这种情况。 实现应在这种情况发生时记录。
实现有利于响应中断,而常规方法返回。
Lock
实现可能能够检测锁的错误使用,例如导致死锁的调用,并可能在此类情况下引发(未选中)异常。 该实现必须记录 Lock
情况和异常类型。
适用于 . 的 java.util.concurrent.locks.Lock.lockInterruptibly()
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。