ILock.LockInterruptibly メソッド

定義

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

[Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void LockInterruptibly ();
[<Android.Runtime.Register("lockInterruptibly", "()V", "GetLockInterruptiblyHandler:Java.Util.Concurrent.Locks.ILockInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member LockInterruptibly : unit -> unit
属性

例外

ロックの取得中に現在のスレッドが中断された場合 (およびロック取得の中断がサポートされます)

注釈

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

使用可能な場合はロックを取得し、すぐにを返します。

ロックが使用できない場合、現在のスレッドはスレッド スケジュールのために無効になり、次の 2 つのいずれかが発生するまで休止状態になります。

<ul><li>ロックは現在のスレッドによって取得されます。または <li>他のスレッドの Thread#割り込みによって現在のスレッドが中断され、ロック取得の中断がサポートされます。 </ul>

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

<b>実装に関する考慮事項</b>

一部の実装でロックの取得を中断する機能は不可能な場合があり、可能な場合はコストの高い操作になる可能性があります。 プログラマは、これが当てはまる可能性があることに注意する必要があります。 実装では、この場合に文書化する必要があります。

実装では、通常のメソッドの戻り値に対する割り込みに対する応答を優先できます。

Lock実装では、デッドロックを引き起こす呼び出しなど、ロックの誤った使用を検出でき、このような状況では (チェックされていない) 例外がスローされる可能性があります。 状況と例外の種類は、その Lock 実装によって文書化する必要があります。

の Java ドキュメント java.util.concurrent.locks.Lock.lockInterruptibly()

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

適用対象