次の方法で共有


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>他のスレッドのスレッド#割り込みによって現在のスレッドが中断され、ロック取得の中断がサポートされます。 </ul>

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

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

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

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

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

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

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

適用対象