言語

ReentrantLock.LockInterruptibly メソッド

定義

現在のスレッドが Thread#interrupt interrupted でない限り、ロックを取得します。

[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler")]
public virtual void LockInterruptibly();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler")>]
abstract member LockInterruptibly : unit -> unit
override this.LockInterruptibly : unit -> unit

実装

属性

例外

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

注釈

現在のスレッドが Thread#interrupt interrupted でない限り、ロックを取得します。

別のスレッドによって保持されていない場合にロックを取得し、すぐに戻り、ロックの保留数を 1 に設定します。

現在のスレッドがこのロックを既に保持している場合、保留カウントは 1 ずつインクリメントされ、メソッドはすぐに返されます。

ロックが別のスレッドによって保持されている場合、現在のスレッドはスレッド スケジューリングのために無効になり、次の 2 つのいずれかが発生するまで休止状態になります。

<ul>

<li>ロックは現在のスレッドによって取得されます。

<li>他のスレッドスレッド#割り込みによって現在のスレッドが中断されます。

</ul>

現在のスレッドによってロックが取得された場合、ロックの保留数は 1 に設定されます。

現在のスレッドの場合:

<ul>

<li>このメソッドへのエントリ時に割り込まれた状態が設定されています。

<li>is Thread#interrupt interrupt interrupted while acquire the lock,

</ul>

InterruptedExceptionがスローされ、現在のスレッドの中断状態がクリアされます。

この実装では、このメソッドは明示的な中断ポイントであるため、ロックの通常または再入可能な取得に対する割り込みに応答することを優先します。

Javaドキュメント。

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

適用対象