語言

Exchanger.Exchange 方法

定義

多載

名稱 Description
Exchange(Object)

等待另一個執行緒抵達此交換點(除非目前執行緒被 Thread#interrupt 中斷),然後將指定物件傳送給該執行緒,並接收該物件作為回報。

Exchange(Object, Int64, TimeUnit)

等待另一個執行緒抵達此交換點(除非當前執行緒被 Thread#interrupt 中斷或指定的等待時間已過),然後將指定物件傳送給該執行緒,並接收該物件作為回報。

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>其他執行緒 Thread#interrupt 中斷目前執行緒。 </ul>

如果目前執行緒:<ul><li>在進入此方法時已設定中斷狀態;或 <li>在等待交換時被 Thread#interrupted 中斷,<則InterruptedException會拋出 /ul>,當前執行緒的中斷狀態會被清除。

Java 文件 java.util.concurrent.Exchanger.exchange(V)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於

Exchange(Object, Int64, TimeUnit)

等待另一個執行緒抵達此交換點(除非當前執行緒被 Thread#interrupt 中斷或指定的等待時間已過),然後將指定物件傳送給該執行緒,並接收該物件作為回報。

[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 中斷或指定的等待時間已過),然後將指定物件傳送給該執行緒,並接收該物件作為回報。

如果交換點已有其他執行緒等待,則該執行緒會為了執行緒排程而繼續,並接收當前執行緒傳入的物件。 當前執行緒會立即回傳,接收由該執行緒傳給交換的物件。

如果交換區沒有其他執行緒在等待,則目前執行緒會被停用以進行執行緒排程,並處於休眠狀態,直到以下三種情況之一發生:<ul<>li>有其他執行緒進入交換;或 <li>其他執行緒 Thread#interrupt 中斷目前執行緒;或 <li>指定等待時間過去。 </ul>

如果目前執行緒:<ul><li>在進入此方法時已設定中斷狀態;或 <li>在等待交換時被 Thread#interrupted 中斷,<則InterruptedException會拋出 /ul>,當前執行緒的中斷狀態會被清除。

若等待時間超過,則 TimeoutException 會被棄權。 若時間小於或等於零,該方法將完全不等待。

Java 文件 java.util.concurrent.Exchanger.exchange(V, long, java.util.concurrent.TimeUnit)

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於