FileChannel.TryLock メソッド

定義

オーバーロード

TryLock()

このチャネルのファイルに対する排他ロックの取得を試みます。

TryLock(Int64, Int64, Boolean)

このチャネルのファイルの特定の領域に対するロックの取得を試みます。

TryLock()

このチャネルのファイルに対する排他ロックの取得を試みます。

[Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")]
public Java.Nio.Channels.FileLock? TryLock ();
[<Android.Runtime.Register("tryLock", "()Ljava/nio/channels/FileLock;", "")>]
member this.TryLock : unit -> Java.Nio.Channels.FileLock

戻り値

新しく取得されたロックを表すロック オブジェクト。または null 、別のプログラムが重複ロックを保持しているためにロックを取得できなかった場合

属性

例外

ファイル チャネルが閉じている場合は 。

このロック要求と重複するロックが既に存在する場合、または別のスレッドがこの要求と重複するロックの取得を待機している場合。

I/O エラーが発生した場合は 。

注釈

このチャネルのファイルに対する排他ロックの取得を試みます。

フォーム fc.tryLock() のこのメソッドの呼び出しは、呼び出しとまったく同じ方法で動作します

fc.{@link #tryLock(long,long,boolean) tryLock}(0L, Long.MAX_VALUE, false)

の Java ドキュメント java.nio.channels.FileChannel.tryLock()

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

適用対象

TryLock(Int64, Int64, Boolean)

このチャネルのファイルの特定の領域に対するロックの取得を試みます。

[Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")]
public abstract Java.Nio.Channels.FileLock? TryLock (long position, long size, bool shared);
[<Android.Runtime.Register("tryLock", "(JJZ)Ljava/nio/channels/FileLock;", "GetTryLock_JJZHandler")>]
abstract member TryLock : int64 * int64 * bool -> Java.Nio.Channels.FileLock

パラメーター

position
Int64

ロックされた領域を開始する位置。負以外にする必要があります

size
Int64

ロックされた領域のサイズ。は負でない必要があり、nbsp;+  の合計 position&size 負でない必要があります。

shared
Boolean

true 共有ロックを要求する場合は 、 false 排他ロックを要求する場合は

戻り値

新しく取得されたロックを表すロック オブジェクト。または null 、別のプログラムが重複ロックを保持しているためにロックを取得できなかった場合

属性

例外

パラメーターが無効な場合は 。

ファイル チャネルが閉じている場合は 。

このロック要求と重複するロックが既に保持されている場合、または別のスレッドがこの要求と重複するロックの取得を待機している場合。

I/O エラーが発生した場合は 。

注釈

このチャネルのファイルの特定の領域に対するロックの取得を試みます。

このメソッドはブロックしません。 呼び出しは常に、要求されたリージョンのロックを取得したか、失敗した場合にすぐに返されます。 重複するロックが別のプログラムによって保持されているためにロックの取得に失敗した場合は、 が返されます null。 他の理由でロックの取得に失敗した場合は、適切な例外がスローされます。

パラメーターと size パラメーターでposition指定された領域は、実際の基になるファイル内に含まれている必要はありません。また、重複する必要もありません。 ロック領域のサイズは固定されています。ロックされた領域に最初にファイルの末尾が含まれており、ファイルが領域を超えて拡張された場合、ファイルの新しい部分はロックの対象になりません。 ファイルのサイズが拡大し、ファイル全体のロックが必要な場合は、0 から始まり、ファイルの予想される最大サイズ以下の領域をロックする必要があります。 引数 #tryLock() 0 のメソッドは、サイズ Long#MAX_VALUEの領域をロックするだけです。

一部のオペレーティング システムでは共有ロックがサポートされていません。その場合、共有ロックの要求は排他ロックの要求に自動的に変換されます。 新しく取得したロックを共有するか排他的にするかをテストするには、結果のロック オブジェクトの FileLock#isShared() isShared メソッドを呼び出します。

ファイル ロックは、Java 仮想マシン全体に代わって保持されます。 これらは、同じ仮想マシン内の複数のスレッドによるファイルへのアクセスを制御するのに適していません。

の Java ドキュメント java.nio.channels.FileChannel.tryLock(long, long, boolean)

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

適用対象