ReentrantLock.IsHeldByCurrentThread プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
このロックが現在のスレッドによって保持されている場合にクエリを実行します。
public virtual bool IsHeldByCurrentThread { [Android.Runtime.Register("isHeldByCurrentThread", "()Z", "GetIsHeldByCurrentThreadHandler")] get; }
[<get: Android.Runtime.Register("isHeldByCurrentThread", "()Z", "GetIsHeldByCurrentThreadHandler")>]
member this.IsHeldByCurrentThread : bool
プロパティ値
true
現在のスレッドがこのロックを保持している場合は 、 false
それ以外の場合は
- 属性
注釈
このロックが現在のスレッドによって保持されている場合にクエリを実行します。
組み込みのモニター ロックの Thread#holdsLock(Object)
メソッドと同様に、このメソッドは通常、デバッグとテストに使用されます。 たとえば、ロックが保持されている間にのみ呼び出す必要があるメソッドは、次のようにアサートできます。
{@code
class X {
final ReentrantLock lock = new ReentrantLock();
// ...
public void m() {
assert lock.isHeldByCurrentThread();
// ... method body
}
}}
また、再入可能ロックが再入可能でない方法で使用されるようにするためにも使用できます。次に例を示します。
{@code
class X {
final ReentrantLock lock = new ReentrantLock();
// ...
public void m() {
assert !lock.isHeldByCurrentThread();
lock.lock();
try {
// ... method body
} finally {
lock.unlock();
}
}
}}
の Java ドキュメント java.util.concurrent.locks.ReentrantLock.isHeldByCurrentThread()
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。