Language

Semaphore.AcquireUninterruptibly メソッド

定義

オーバーロード

名前 説明
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
属性

注釈

このセマフォから許可を取得し、使用可能になるまでブロックします。

使用可能な場合は許可を取得し、すぐに戻り、利用可能な許可の数を 1 つ減らします。

許可がない場合、現在のスレッドはスレッド スケジューリングのために無効になり、他のスレッドがこのセマフォの #release メソッドを呼び出し、現在のスレッドに許可が割り当てられるまで休止状態になります。

現在のスレッドが許可を待っている間にスレッド#割り込みが中断された場合、そのスレッドは待機し続けますが、許可を受け取った時刻と比較して、許可が割り当てられた時刻が変更される可能性があります。 スレッドがこのメソッドから戻ると、割り込み状態が設定されます。

Javaドキュメント。

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

適用対象

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 メソッドの1つを呼び出し、現在のスレッドが割り当て許可の隣にあり、利用可能な許可の数がこの要求を満たすまで休止状態になります。

現在のスレッドが許可を待っている間にスレッド#割り込みが中断された場合、待機し続け、キュー内の位置は影響を受けなくなります。 スレッドがこのメソッドから戻ると、割り込み状態が設定されます。

Javaドキュメント。

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

適用対象