語言

CyclicBarrier.Await 方法

定義

多載

名稱 Description
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>其他執行緒 Thread#interrupt 中斷當前執行緒;或 <li>其他執行緒 Thread#interrupt 中斷其他等待執行緒;或 <li>其他執行緒在等待障礙時逾時;或 <li>其他執行緒><<喚起#reset這道障礙。 </ul>

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

如果障礙發生 #reset 在任何執行緒等待時,或當呼叫時 await 障礙 #isBroken 被打破,或任一執行緒等待時,則 BrokenBarrierException 會被拋棄。

如果任何執行緒在等待時被 Thread#interrupt 中斷,則所有其他等待中的執行緒都會拋出 BrokenBarrierException ,障礙會進入破壞狀態。

如果目前執行緒是最後抵達的執行緒,且建構子中提供了非空障礙動作,則當前執行緒執行該動作後才允許其他執行緒繼續。 若在障礙動作中發生異常,該異常會在當前執行緒中傳播,障礙會被置於破壞狀態。

的 java.util.concurrent.CyclicBarrier.await()Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於

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>其他執行緒 Thread#interrupt 中斷當前執行緒;或 <li>其他執行緒 Thread#interrupt 中斷其他等待執行緒;或 <li>><<其他線程在等待障礙時會超時;或者<說>,有其他線索在這道屏障上召喚#reset。 </ul>

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

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

如果障礙發生 #reset 在任何執行緒等待時,或當呼叫時 await 障礙 #isBroken 被打破,或任一執行緒等待時,則 BrokenBarrierException 會被拋棄。

如果任何執行緒在等待時被 Thread#interrupt 中斷,則所有其他等待中的執行緒都會拋出 BrokenBarrierException ,障礙會進入破壞狀態。

如果目前執行緒是最後抵達的執行緒,且建構子中提供了非空障礙動作,則當前執行緒執行該動作後才允許其他執行緒繼續。 若在障礙動作中發生異常,該異常會在當前執行緒中傳播,障礙會被置於破壞狀態。

的 java.util.concurrent.CyclicBarrier.await(long, java.util.concurrent.TimeUnit)Java 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於