언어

ICondition.Await 메서드

정의

오버로드

속성 Description
Await()

현재 스레드가 신호를 보내거나 Thread#인터럽트 중단될 때까지 대기합니다.

Await(Int64, TimeUnit)

현재 스레드가 신호를 보내거나 중단되거나 지정된 대기 시간이 경과할 때까지 대기합니다.

Await()

현재 스레드가 신호를 보내거나 Thread#인터럽트 중단될 때까지 대기합니다.

[Android.Runtime.Register("await", "()V", "GetAwaitHandler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void Await();
[<Android.Runtime.Register("await", "()V", "GetAwaitHandler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Await : unit -> unit
특성

예외

현재 스레드가 중단되고 스레드 일시 중단이 지원되는 경우

설명

현재 스레드가 신호를 보내거나 Thread#인터럽트 중단될 때까지 대기합니다.

이와 Condition 관련된 잠금은 원자적으로 해제되고 현재 스레드는 스레드 예약을 위해 비활성화되고 네 가지 중 하나</em>이 발생할 때까지 <>휴면 상태가 됩니다. <ul><li>일부 다른 스레드는 이에 #signal 대한 메서드를 호출 Condition 하고 현재 스레드는 각성할 스레드로 선택됩니다. 또는 <li>다른 스레드는 이에 #signalAll대한 메서드를 호출합니다Condition<>.다른 스레드 스레드#인터럽트는 현재 스레드를 중단하며 스레드 일시 중단이 지원됩니다. 또는 <li>A "<em>가짜 절전 모드 해제</em>" 발생 합니다. </ul>

모든 경우에 이 메서드가 현재 스레드를 반환하기 전에 이 조건과 연결된 잠금을 다시 획득해야 합니다. 스레드가 반환될 때 이 잠금을 <>유지하는 것이 보장됩니다<>.

현재 스레드: ul<li가 이 메서드에 대한 항목에서 중단된 상태를 설정했거나><, 대기 중 스레드#인터럽트 중단이 지원되고 / >ul이 지원되면 /ul<> 이 throw되고 현재 스레드의 중단 상태가 지워집니다.<>InterruptedException 첫 번째 경우 잠금이 해제되기 전에 중단 테스트가 발생하는지 여부는 지정되지 않습니다.

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

현재 스레드는 이 메서드가 호출될 때 이와 Condition 연결된 잠금을 보유하는 것으로 간주됩니다. 이 경우인지 여부와 그렇지 않은 경우 응답 방법을 결정하는 것은 구현에 달려 있습니다. 일반적으로 예외가 throw되고(예: IllegalMonitorStateException) 구현에서 해당 사실을 문서화해야 합니다.

구현은 신호에 대한 응답으로 일반 메서드 반환보다 인터럽트 응답에 우선할 수 있습니다. 이 경우 구현은 신호가 있는 경우 다른 대기 스레드로 리디렉션되도록 해야 합니다.

에 대한 java.util.concurrent.locks.Condition.await()Java 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상

Await(Int64, TimeUnit)

현재 스레드가 신호를 보내거나 중단되거나 지정된 대기 시간이 경과할 때까지 대기합니다.

[Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)Z", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public bool Await(long time, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)Z", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler:Java.Util.Concurrent.Locks.IConditionInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Await : int64 * Java.Util.Concurrent.TimeUnit -> bool

매개 변수

time
Int64

대기할 최대 시간

unit
TimeUnit

인수의 time 시간 단위

반품

false 메서드에서 반환하기 전에 대기 시간이 감지 가능하게 경과된 경우, 그렇지 않으면 true

특성

예외

현재 스레드가 중단되고 스레드 일시 중단이 지원되는 경우

설명

현재 스레드가 신호를 보내거나 중단되거나 지정된 대기 시간이 경과할 때까지 대기합니다. 이 메서드는 동작적으로 다음과 같습니다.

{@code awaitNanos(unit.toNanos(time)) > 0}

에 대한 java.util.concurrent.locks.Condition.await(long, java.util.concurrent.TimeUnit)Java 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상