CyclicBarrier.Await メソッド

定義

オーバーロード

Await()

すべての #getParties パーティがこのバリアで呼び出 await されるまで待機します。

Await(Int64, TimeUnit)

すべての #getParties パーティがこのバリアで呼び出されるか await 、指定された待機時間が経過するまで待機します。

Await()

すべての #getParties パーティがこのバリアで呼び出 await されるまで待機します。

[Android.Runtime.Register("await", "()I", "GetAwaitHandler")]
public virtual int Await ();
[<Android.Runtime.Register("await", "()I", "GetAwaitHandler")>]
abstract member Await : unit -> int
override this.Await : unit -> int

戻り値

現在のスレッドの到着インデックス。index getParties() - 1 は最初に到着したことを示し、0 は最後に到着したことを示します

属性

例外

待機中に現在のスレッドが中断された場合

現在のスレッドが待機している間に のスレッドが中断またはタイムアウトした場合、またはバリアがリセットされた場合、または呼び出されたときに await バリアが切断された場合、または例外が原因でバリア アクション (存在する場合) が失敗した場合

注釈

すべての #getParties パーティがこのバリアで呼び出 await されるまで待機します。

現在のスレッドが最後に到着しない場合は、スレッド スケジューリングの目的で無効になり、次のいずれかが発生するまで休止状態になります。ul>li 最後のスレッドが到着するか、<li>他のスレッドのスレッド#割り込みによって現在のスレッドが中断されるか、<li>他のスレッドのスレッドスレッド#割り込みが他の待機スレッドの 1 つを中断するか、li <>バリアを待機している間に他のスレッドがタイムアウトするか、li <>他のスレッドの一部がタイムアウトします。><<は、#resetこのバリアで を呼び出します。 </ul>

現在のスレッド: <ul><li>がこのメソッドへのエントリ時に割り込み状態を設定している場合、または <li>が /ul> の<待機中に Thread#interrupt が中断された場合は、InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。

いずれかのスレッドが待機している間にバリアがある #reset 場合、または が呼び出されたときに await バリア #isBroken が壊れている場合、または任意のスレッドが待機している間にバリアが壊れている場合 BrokenBarrierException は、 がスローされます。

待機中にスレッドが Thread#割り込み中断された場合、他のすべての待機スレッドがスロー BrokenBarrierException され、バリアは壊れた状態になります。

現在のスレッドが最後に到達したスレッドであり、null 以外のバリア アクションがコンストラクターで指定された場合、現在のスレッドはアクションを実行してから、他のスレッドを続行できるようにします。 バリア アクション中に例外が発生した場合、その例外は現在のスレッドに反映され、バリアは壊れた状態になります。

の Java ドキュメント java.util.concurrent.CyclicBarrier.await()

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

Await(Int64, TimeUnit)

すべての #getParties パーティがこのバリアで呼び出されるか await 、指定された待機時間が経過するまで待機します。

[Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)I", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual int Await (long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("await", "(JLjava/util/concurrent/TimeUnit;)I", "GetAwait_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member Await : int64 * Java.Util.Concurrent.TimeUnit -> int
override this.Await : int64 * Java.Util.Concurrent.TimeUnit -> int

パラメーター

timeout
Int64

障壁を待つ時間

unit
TimeUnit

タイムアウト パラメーターの時間単位

戻り値

現在のスレッドの到着インデックス。index getParties() - 1 は最初に到着したことを示し、0 は最後に到着したことを示します

属性

例外

待機中に現在のスレッドが中断された場合

指定したタイムアウトが経過した場合

現在のスレッドが待機している間に のスレッドが中断またはタイムアウトした場合、またはバリアがリセットされた場合、または呼び出されたときに await バリアが切断された場合、または例外が原因でバリア アクション (存在する場合) が失敗した場合

注釈

すべての #getParties パーティがこのバリアで呼び出されるか await 、指定された待機時間が経過するまで待機します。

現在のスレッドが最後に到着しない場合は、スレッド スケジューリングのために無効になり、次のいずれかが発生するまで休止状態になります。ul>li 最後のスレッドが到着するか、li <>指定されたタイムアウトが経過するか、<li>他のスレッドのスレッドスレッド#割り込みが現在のスレッドを中断するか、li <>他のスレッドのスレッド#割り込みによって他の待機スレッドの 1 つが中断されます。><><<バリアの待機中に他のスレッドがタイムアウトする場合があります。または <li>このバリアで他のスレッドが呼び出されます#reset。 </ul>

現在のスレッド: <ul><li>がこのメソッドへのエントリ時に割り込み状態を設定している場合、または <li>が /ul> の<待機中に Thread#interrupt が中断された場合は、InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。

指定した待機時間が経過すると、 TimeoutException がスローされます。 時刻が 0 以下の場合、メソッドはまったく待機しません。

いずれかのスレッドが待機している間にバリアがある #reset 場合、または が呼び出されたときに await バリア #isBroken が壊れている場合、または任意のスレッドが待機している間にバリアが壊れている場合 BrokenBarrierException は、 がスローされます。

待機中にスレッドが Thread#割り込み中断された場合、他のすべての待機スレッドがスロー BrokenBarrierException され、バリアは壊れた状態になります。

現在のスレッドが最後に到達したスレッドであり、null 以外のバリア アクションがコンストラクターで指定された場合、現在のスレッドはアクションを実行してから、他のスレッドを続行できるようにします。 バリア アクション中に例外が発生した場合、その例外は現在のスレッドに反映され、バリアは壊れた状態になります。

の Java ドキュメント java.util.concurrent.CyclicBarrier.await(long, java.util.concurrent.TimeUnit)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象