次の方法で共有


Semaphore.TryAcquire メソッド

定義

オーバーロード

TryAcquire()

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

TryAcquire(Int32)

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

TryAcquire(Int64, TimeUnit)

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

TryAcquire(Int32, Int64, TimeUnit)

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

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を返します。

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

の Java ドキュメントjava.util.concurrent.Semaphore.tryAcquire()

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

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 それ以外の場合は

属性

例外

if が負の場合permits

注釈

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

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

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

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

の Java ドキュメントjava.util.concurrent.Semaphore.tryAcquire(int)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

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 つ減らします。

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

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

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

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

の Java ドキュメントjava.util.concurrent.Semaphore.tryAcquire(long, java.util.concurrent.TimeUnit)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

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 すべての許可が取得される前に待機時間が経過した場合

属性

例外

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

if が負の場合permits

注釈

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

指定された許可の数を取得します(使用可能で、すぐに戻る場合は値を true使用して)、指定された量だけ利用可能な許可の数を減らします。

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

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

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

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

の Java ドキュメントjava.util.concurrent.Semaphore.tryAcquire(int, long, java.util.concurrent.TimeUnit)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象