言語

Exchanger.Exchange メソッド

定義

オーバーロード

名前 説明
Exchange(Object)

別のスレッドがこの交換ポイントに到達するまで待機します (現在のスレッドが Thread#interrupt が中断されている場合を除く)。その後、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。

Exchange(Object, Int64, TimeUnit)

別のスレッドがこの交換ポイントに到達するまで待機し (現在のスレッドが Thread#interrupt interrupted または指定された待機時間が経過した場合を除く)、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。

Exchange(Object)

別のスレッドがこの交換ポイントに到達するまで待機します (現在のスレッドが Thread#interrupt が中断されている場合を除く)。その後、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。

[Android.Runtime.Register("exchange", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_Handler")]
public virtual Java.Lang.Object? Exchange(Java.Lang.Object? x);
[<Android.Runtime.Register("exchange", "(Ljava/lang/Object;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_Handler")>]
abstract member Exchange : Java.Lang.Object -> Java.Lang.Object
override this.Exchange : Java.Lang.Object -> Java.Lang.Object

パラメーター

x
Object

交換するオブジェクト

返品

他のスレッドによって提供されるオブジェクト

属性

注釈

別のスレッドがこの交換ポイントに到達するまで待機します (現在のスレッドが Thread#interrupt が中断されている場合を除く)。その後、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。

別のスレッドが既に交換ポイントで待機している場合は、スレッドのスケジュール設定のために再開され、現在のスレッドによって渡されたオブジェクトを受け取ります。 現在のスレッドはすぐに戻り、その他のスレッドによって交換に渡されたオブジェクトを受け取ります。

他のスレッドがまだ交換を待機していない場合、現在のスレッドはスレッドスケジューリングのために無効になり、 <ul><li>他のスレッドが交換に入るまで休止状態になります。または <li>他のスレッドスレッド#割り込みによって現在のスレッドが割り込まれます。 </ul>

現在のスレッド<ul><li>がこのメソッドへの入力時に割り込まれた状態に設定されている場合、または<li>is Thread#interruptが交換を待っている間に中断された場合、</ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。

Javaドキュメント。

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

適用対象

Exchange(Object, Int64, TimeUnit)

別のスレッドがこの交換ポイントに到達するまで待機し (現在のスレッドが Thread#interrupt interrupted または指定された待機時間が経過した場合を除く)、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。

[Android.Runtime.Register("exchange", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual Java.Lang.Object? Exchange(Java.Lang.Object? x, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("exchange", "(Ljava/lang/Object;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;", "GetExchange_Ljava_lang_Object_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member Exchange : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit -> Java.Lang.Object
override this.Exchange : Java.Lang.Object * int64 * Java.Util.Concurrent.TimeUnit -> Java.Lang.Object

パラメーター

x
Object

交換するオブジェクト

timeout
Int64

待機する最大時間

unit
TimeUnit

timeout引数の時間単位

返品

他のスレッドによって提供されるオブジェクト

属性

注釈

別のスレッドがこの交換ポイントに到達するまで待機し (現在のスレッドが Thread#interrupt interrupted または指定された待機時間が経過した場合を除く)、指定されたオブジェクトを転送し、そのオブジェクトを受け取ります。

別のスレッドが既に交換ポイントで待機している場合は、スレッドのスケジュール設定のために再開され、現在のスレッドによって渡されたオブジェクトを受け取ります。 現在のスレッドはすぐに戻り、その他のスレッドによって交換に渡されたオブジェクトを受け取ります。

他のスレッドがまだ交換で待機していない場合、現在のスレッドはスレッド スケジューリングのために無効になり、 <ul><li>他のスレッドが交換に入るまで休止状態になります。または <li>他のスレッド#割り込みによって現在のスレッドが中断されるか、 <li>指定された待機時間が経過します。 </ul>

現在のスレッド<ul><li>がこのメソッドへの入力時に割り込まれた状態に設定されている場合、または<li>is Thread#interruptが交換を待っている間に中断された場合、</ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。

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

Javaドキュメント。

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

適用対象