Semaphore.Acquire メソッド

定義

オーバーロード

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>他のスレッドの Thread#interrupt によって現在のスレッドが中断されます。 </ul>

現在のスレッド: <ul><li>がこのメソッドへのエントリで割り込み状態が設定されている場合、または<許可を待機している間に li>が Thread#interrupt interrupted の場合は、/ul> がInterruptedExceptionスローされ、<現在のスレッドの中断状態がクリアされます。

java.util.concurrent.Semaphore.acquire()Java ドキュメント。

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

適用対象

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>他のスレッドの Thread#interrupt が現在のスレッドを中断します。 </ul>

現在のスレッド: <ul><li>がこのメソッドへのエントリで割り込み状態が設定されている場合、または<許可を待機している間に li>が Thread#interrupt interrupted の場合は、/ul> がInterruptedExceptionスローされ、<現在のスレッドの中断状態がクリアされます。 このスレッドに割り当てられた許可は、許可を取得しようとしている他のスレッドに割り当てられます。これは、 の #release()呼び出しによって許可が使用可能になったかのようにです。

java.util.concurrent.Semaphore.acquire(int)Java ドキュメント。

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

適用対象