言語

Semaphore.TryAcquire メソッド

定義

オーバーロード

名前 説明
TryAcquire(Int32)

呼び出し時にすべてが使用可能な場合にのみ、このセマフォから許可の数を取得します。

TryAcquire(Int32, Int64, TimeUnit)

指定された待機時間内にすべてが使用可能になり、現在のスレッドが Thread#interrupt 割り込みが中断されていない場合に、このセマフォから許可の数を取得します。

TryAcquire(Int64, TimeUnit)

指定された待機時間内に使用可能になり、現在のスレッドが Thread#interrupted になっていない場合は、このセマフォから許可を取得します。

TryAcquire()

呼び出し時に使用可能な場合にのみ、このセマフォから許可を取得します。

TryAcquire(Int32)

呼び出し時にすべてが使用可能な場合にのみ、このセマフォから許可の数を取得します。

[Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")]
public virtual bool TryAcquire(int permits);
[<Android.Runtime.Register("tryAcquire", "(I)Z", "GetTryAcquire_IHandler")>]
abstract member TryAcquire : int -> bool
override this.TryAcquire : int -> bool

パラメーター

permits
Int32

取得許可の数

返品

true 許可が取得され、それ以外の場合は false 場合

属性

例外

permitsが負の場合

注釈

呼び出し時にすべてが使用可能な場合にのみ、このセマフォから許可の数を取得します。

指定された許可の数 (使用可能な場合) を取得し、値を trueして直ちに返し、指定された量だけ使用可能な許可の数を減らします。

不十分な許可が使用可能な場合、このメソッドは false 値ですぐに返され、使用可能な許可の数は変更されません。

このセマフォが公正な注文ポリシーを使用するように設定されている場合でも、他のスレッドが現在待機しているかどうかに関係なく、 tryAcquire<em>will</em> を呼び出すと、すぐに許可が取得されます。 この >barging>の動作は、公平性を破る場合でも、特定の状況で役立ちます。 公平性の設定を尊重する場合は、ほぼ同等の #tryAcquire(int, long, TimeUnit) tryAcquire(permits, 0, TimeUnit.SECONDS) を使用します (中断も検出します)。

Javaドキュメント。

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

適用対象

TryAcquire(Int32, Int64, TimeUnit)

指定された待機時間内にすべてが使用可能になり、現在のスレッドが Thread#interrupt 割り込みが中断されていない場合に、このセマフォから許可の数を取得します。

[Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire(int permits, long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(IJLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_IJLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int * int64 * Java.Util.Concurrent.TimeUnit -> bool

パラメーター

permits
Int32

取得許可の数

timeout
Int64

許可を待つ最大時間

unit
TimeUnit

timeout引数の時間単位

返品

true すべての許可が取得され、すべての許可が取得される前に待機時間が経過した場合に false する場合

属性

例外

現在のスレッドが中断された場合

permitsが負の場合

注釈

指定された待機時間内にすべてが使用可能になり、現在のスレッドが Thread#interrupt 割り込みが中断されていない場合に、このセマフォから許可の数を取得します。

指定された許可の数を取得します (使用可能な場合は直ちに返されます)。値は true。指定された量だけ使用可能な許可の数を減らします。

不十分な許可が利用可能な場合、現在のスレッドはスレッドスケジューリングのために無効になり、 <ul><li>他のスレッドがこのセマフォの #release() release メソッドのいずれかを呼び出し、現在のスレッドは次に許可が割り当てられ、利用可能な許可の数がこの要求を満たすまで休止状態になります。 または <li>他のスレッドスレッド#割り込みによって現在のスレッドが中断されます。または、 <li>指定された待機時間が経過します。 </ul>

許可が取得された場合は、 true 値が返されます。

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

指定した待機時間が経過すると、 false 値が返されます。 時間が 0 以下の場合、メソッドはまったく待機しません。 このスレッドに割り当てられた許可は、許可を取得しようとしている他のスレッドに割り当てられます。これは、許可が #release()の呼び出しによって使用可能になったかのように行われます。

Javaドキュメント。

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

適用対象

TryAcquire(Int64, TimeUnit)

指定された待機時間内に使用可能になり、現在のスレッドが Thread#interrupted になっていない場合は、このセマフォから許可を取得します。

[Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")]
public virtual bool TryAcquire(long timeout, Java.Util.Concurrent.TimeUnit? unit);
[<Android.Runtime.Register("tryAcquire", "(JLjava/util/concurrent/TimeUnit;)Z", "GetTryAcquire_JLjava_util_concurrent_TimeUnit_Handler")>]
abstract member TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool
override this.TryAcquire : int64 * Java.Util.Concurrent.TimeUnit -> bool

パラメーター

timeout
Int64

許可を待つ最大時間

unit
TimeUnit

timeout引数の時間単位

返品

true許可が取得された場合、および許可が取得される前に待機時間が経過した場合にfalse

属性

例外

現在のスレッドが中断された場合

注釈

指定された待機時間内に使用可能になり、現在のスレッドが Thread#interrupted になっていない場合は、このセマフォから許可を取得します。

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

許可がない場合、現在のスレッドはスレッド スケジューリングのために無効になり、 <ul><li>他のスレッドがこのセマフォの #release メソッドを呼び出し現在のスレッドには許可が割り当てられるか、 <li>他のスレッドスレッド#割り込みが現在のスレッドを中断するか、 <li>指定された待機時間が経過するまで休止状態になります。 </ul>

許可が取得された場合は、 true 値が返されます。

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

指定した待機時間が経過すると、 false 値が返されます。 時間が 0 以下の場合、メソッドはまったく待機しません。

Javaドキュメント。

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

適用対象

TryAcquire()

呼び出し時に使用可能な場合にのみ、このセマフォから許可を取得します。

[Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")]
public virtual bool TryAcquire();
[<Android.Runtime.Register("tryAcquire", "()Z", "GetTryAcquireHandler")>]
abstract member TryAcquire : unit -> bool
override this.TryAcquire : unit -> bool

返品

true 許可が取得され、それ以外の場合は false 場合

属性

注釈

呼び出し時に使用可能な場合にのみ、このセマフォから許可を取得します。

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

使用できる許可がない場合、このメソッドは値 falseですぐに返されます。

このセマフォが公正な注文ポリシーを使用するように設定されている場合でも、他のスレッドが現在待機しているかどうかに関係なく、 tryAcquire()<em>will</em> を呼び出すと、すぐに許可が取得されます。 この >barging>の動作は、公平性を破る場合でも、特定の状況で役立ちます。 公平性の設定を尊重する場合は、ほぼ同等の #tryAcquire(long, TimeUnit) tryAcquire(0, TimeUnit.SECONDS) を使用します (中断も検出します)。

Javaドキュメント。

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

適用対象