Semaphore.Acquire メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
| 名前 | 説明 |
|---|---|
| Acquire() |
このセマフォから許可を取得し、使用可能になるまでブロックするか、スレッドが Thread#interrupt interrupted になるまでブロックします。 |
| Acquire(Int32) |
このセマフォから指定された数の許可を取得し、すべてが使用可能になるまでブロックするか、スレッドが Thread#interrupt interrupted になるまでブロックします。 |
Acquire()
このセマフォから許可を取得し、使用可能になるまでブロックするか、スレッドが Thread#interrupt interrupted になるまでブロックします。
[Android.Runtime.Register("acquire", "()V", "GetAcquireHandler")]
public virtual void Acquire();
[<Android.Runtime.Register("acquire", "()V", "GetAcquireHandler")>]
abstract member Acquire : unit -> unit
override this.Acquire : unit -> unit
- 属性
例外
現在のスレッドが中断された場合
注釈
このセマフォから許可を取得し、使用可能になるまでブロックするか、スレッドが Thread#interrupt interrupted になるまでブロックします。
使用可能な場合は許可を取得し、すぐに戻り、利用可能な許可の数を 1 つ減らします。
許可がない場合、現在のスレッドはスレッド スケジューリングのために無効になり、次の 2 つのことが起こるまで休止状態になります。 <ul><li>他のスレッドがこのセマフォに対して #release メソッドを呼び出し、現在のスレッドには許可が割り当てられます。または、 <li>他のスレッドスレッド#割り込みによって現在のスレッドが中断されます。
</ul>
現在のスレッドが<ul><li>このメソッドへのエントリで割り込まれた状態が設定されている場合、または許可を待っている間にスレッド#割り込みが中断された<></ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
適用対象
Acquire(Int32)
このセマフォから指定された数の許可を取得し、すべてが使用可能になるまでブロックするか、スレッドが Thread#interrupt interrupted になるまでブロックします。
[Android.Runtime.Register("acquire", "(I)V", "GetAcquire_IHandler")]
public virtual void Acquire(int permits);
[<Android.Runtime.Register("acquire", "(I)V", "GetAcquire_IHandler")>]
abstract member Acquire : int -> unit
override this.Acquire : int -> unit
パラメーター
- permits
- Int32
取得許可の数
- 属性
例外
現在のスレッドが中断された場合
permitsが負の場合
注釈
このセマフォから指定された数の許可を取得し、すべてが使用可能になるまでブロックするか、スレッドが Thread#interrupt interrupted になるまでブロックします。
指定された許可の数 (使用可能な場合) を取得し、すぐに戻り、指定された量だけ使用可能な許可の数を減らします。 このメソッドはループ for (int i = 0; i < permits; ++i) acquire(); と同じ効果を持ちますが、許可をアトミックに一度に取得する点が異なります。
不十分な許可が使用可能な場合、現在のスレッドはスレッド スケジューリングのために無効になり、次の 2 つのことが起こるまで休止状態になります。 <ul><li>他のスレッドがこのセマフォの #release() release メソッドのいずれかを呼び出し、現在のスレッドが割り当てられ、使用可能な許可の数がこの要求を満たすか、または <li>他のスレッドスレッド#割り込み割り込みが現在のスレッドに割り込まれます。
</ul>
現在のスレッドが<ul><li>このメソッドへのエントリで割り込まれた状態が設定されている場合、または許可を待っている間にスレッド#割り込みが中断された<></ul>InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。 このスレッドに割り当てられる許可は、代わりに、許可を取得しようとしている他のスレッドに割り当てられます。これは、 #release()の呼び出しによって許可が使用可能になったかのように行われます。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。