Semaphore.AcquireUninterruptibly 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| AcquireUninterruptibly() |
從該信號旗取得許可證,封鎖直到有許可證。 |
| AcquireUninterruptibly(Int32) |
從此信號旗取得指定數量的許可證,封鎖直到所有許可證都可用。 |
AcquireUninterruptibly()
從該信號旗取得許可證,封鎖直到有許可證。
[Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")]
public virtual void AcquireUninterruptibly();
[<Android.Runtime.Register("acquireUninterruptibly", "()V", "GetAcquireUninterruptiblyHandler")>]
abstract member AcquireUninterruptibly : unit -> unit
override this.AcquireUninterruptibly : unit -> unit
- 屬性
備註
從該信號旗取得許可證,封鎖直到有許可證。
若有許可證,取得並立即返回,減少一張許可證。
若無許可可用,則當前執行緒將因執行緒排程而停用,並處於休眠狀態,直到其他執行緒 #release 呼叫該信號量的方法,且當前執行緒接著被指派許可。
如果目前執行緒在等待許可期間被 Thread#interrupted 中斷,則會繼續等待,但執行緒被指派許可的時間可能會與若無中斷時收到許可的時間有所不同。 當執行緒從此方法返回時,其中斷狀態會被設定。
Java 文件 java.util.concurrent.Semaphore.acquireUninterruptibly()。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
AcquireUninterruptibly(Int32)
從此信號旗取得指定數量的許可證,封鎖直到所有許可證都可用。
[Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")]
public virtual void AcquireUninterruptibly(int permits);
[<Android.Runtime.Register("acquireUninterruptibly", "(I)V", "GetAcquireUninterruptibly_IHandler")>]
abstract member AcquireUninterruptibly : int -> unit
override this.AcquireUninterruptibly : int -> unit
參數
- permits
- Int32
需取得許可證數量
- 屬性
例外狀況
若為 permits 負
備註
從此信號旗取得指定數量的許可證,封鎖直到所有許可證都可用。
取得指定數量的許可證(若有),並立即返回,減少可用許可證數量。 此方法與迴路 for (int i = 0; i < permits; ++i) acquireUninterruptibly(); 相同,但原子層次一次性取得所有許可:
若許可不足,則當前執行緒將因排程需求而停用,並處於休眠狀態,直到其他執行緒 #release() release 呼叫該信號量的方法,且當前執行緒接著被分配許可,且可用許可數量符合此請求。
如果目前執行緒在等待許可時被 Thread#interrupt 中斷,則會繼續等待,且其在佇列中的位置不受影響。 當執行緒從此方法返回時,其中斷狀態會被設定。
Java 文件 java.util.concurrent.Semaphore.acquireUninterruptibly(int)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。