다음을 통해 공유


ILock.LockInterruptibly 메서드

정의

현재 스레드가 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#인터럽트는 현재 스레드를 중단하며 잠금 획득 중단이 지원됩니다. </ul>

현재 스레드: <ul<>li>가 이 메서드를 입력할 때 중단된 상태를 설정했거나<, 잠금>을 획득하는 동안 Thread#인터럽트 중단이 있고 잠금 획득 중단이 지원<되면 /ul InterruptedException> 이 throw되고 현재 스레드의 중단 상태가 지워집니다.

<b>구현 고려 사항</b>

일부 구현에서 잠금 획득을 중단하는 기능은 불가능할 수 있으며, 가능하면 비용이 많이 드는 작업일 수 있습니다. 프로그래머가 이 경우일 수 있음을 알고 있어야 합니다. 구현은 이 경우를 문서화해야 합니다.

구현은 일반 메서드 반환보다 인터럽트 응답에 선호할 수 있습니다.

구현은 Lock 교착 상태를 유발하는 호출과 같은 잘못된 잠금 사용을 감지할 수 있으며 이러한 상황에서 (선택되지 않은) 예외를 throw할 수 있습니다. 상황 및 예외 형식은 해당 Lock 구현에서 문서화해야 합니다.

에 대한 java.util.concurrent.locks.Lock.lockInterruptibly()Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상