ReentrantReadWriteLock.ReentrantWriteLock.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>は、書き込みロックの取得中に Thread#interrupt が中断されました。

</ul>

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

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

java.util.concurrent.locks.ReentrantReadWriteLock.WriteLock.lockInterruptibly()Java ドキュメント。

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

適用対象