AsynchronousFileChannel.Lock メソッド

定義

オーバーロード

Lock()

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

Lock(Object, ICompletionHandler)

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

Lock(Int64, Int64, Boolean)

このチャネルのファイルの特定のリージョンに対するロックを取得します。

Lock(Int64, Int64, Boolean, Object, ICompletionHandler)

このチャネルのファイルの特定のリージョンに対するロックを取得します。

Lock()

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

[Android.Runtime.Register("lock", "()Ljava/util/concurrent/Future;", "", ApiSince=26)]
public Java.Util.Concurrent.IFuture? Lock ();
[<Android.Runtime.Register("lock", "()Ljava/util/concurrent/Future;", "", ApiSince=26)>]
member this.Lock : unit -> Java.Util.Concurrent.IFuture

戻り値

保留中の Future 結果を表す オブジェクト

属性

注釈

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

このメソッドは、このチャネルのファイルに対する排他ロックを取得する操作を開始します。 メソッドは、操作の Future 保留中の結果を表す を返します。 の Future#get() get メソッドはFuture、正常に完了すると をFileLock返します。

このメソッドの呼び出しは、呼び出しとまったく同じ方法で動作します

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

の Java ドキュメント java.nio.channels.AsynchronousFileChannel.lock()

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

適用対象

Lock(Object, ICompletionHandler)

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

[Android.Runtime.Register("lock", "(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public void Lock (Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("lock", "(Ljava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
member this.Lock : Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

パラメーター

attachment
Object

I/O 操作にアタッチするオブジェクト。を指定できます null

handler
ICompletionHandler

結果を使用するためのハンドラー

属性

注釈

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

このメソッドは、このチャネルのファイルの特定の領域に対するロックを取得する操作を開始します。 パラメーターは handler 、ロックが取得されたとき (または操作が失敗した場合) に呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、結果として得られます FileLock

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

ch.{@link #lock(long,long,boolean,Object,CompletionHandler) lock}(0L, Long.MAX_VALUE, false, att, handler)

の Java ドキュメント java.nio.channels.AsynchronousFileChannel.lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>)

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

適用対象

Lock(Int64, Int64, Boolean)

このチャネルのファイルの特定のリージョンに対するロックを取得します。

[Android.Runtime.Register("lock", "(JJZ)Ljava/util/concurrent/Future;", "GetLock_JJZHandler", ApiSince=26)]
public abstract Java.Util.Concurrent.IFuture? Lock (long position, long size, bool shared);
[<Android.Runtime.Register("lock", "(JJZ)Ljava/util/concurrent/Future;", "GetLock_JJZHandler", ApiSince=26)>]
abstract member Lock : int64 * int64 * bool -> Java.Util.Concurrent.IFuture

パラメーター

position
Int64

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

size
Int64

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

shared
Boolean

true 共有ロックを要求する場合は、このチャネルを読み取り (場合によっては書き込み) 用に開く必要があります。 false 排他ロックを要求する場合は、このチャネルを書き込み用に開く必要があります (場合によっては読み取り)

戻り値

保留中の Future 結果を表す オブジェクト

属性

注釈

このチャネルのファイルの特定のリージョンに対するロックを取得します。

このメソッドは、このチャネルのファイルの特定の領域に対するロックを取得する操作を開始します。 メソッドは、完了ハンドラーを指定する代わりに、保留中の結果を #lock(long, long, boolean, Object, CompletionHandler) 表す を返 Future す点を除き、メソッドとまったく同じ方法で動作します。 の Future#get() get メソッドはFuture、正常に完了すると をFileLock返します。

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

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

適用対象

Lock(Int64, Int64, Boolean, Object, ICompletionHandler)

このチャネルのファイルの特定のリージョンに対するロックを取得します。

[Android.Runtime.Register("lock", "(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetLock_JJZLjava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)]
[Java.Interop.JavaTypeParameters(new System.String[] { "A" })]
public abstract void Lock (long position, long size, bool shared, Java.Lang.Object? attachment, Java.Nio.Channels.ICompletionHandler? handler);
[<Android.Runtime.Register("lock", "(JJZLjava/lang/Object;Ljava/nio/channels/CompletionHandler;)V", "GetLock_JJZLjava_lang_Object_Ljava_nio_channels_CompletionHandler_Handler", ApiSince=26)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "A" })>]
abstract member Lock : int64 * int64 * bool * Java.Lang.Object * Java.Nio.Channels.ICompletionHandler -> unit

パラメーター

position
Int64

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

size
Int64

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

shared
Boolean

true 共有ロックを要求する場合は、このチャネルを読み取り (場合によっては書き込み) 用に開く必要があります。 false 排他ロックを要求する場合は、このチャネルを書き込み用に開く必要があります (場合によっては読み取り)

attachment
Object

I/O 操作にアタッチするオブジェクト。を指定できます null

handler
ICompletionHandler

結果を使用するためのハンドラー

属性

注釈

このチャネルのファイルの特定のリージョンに対するロックを取得します。

このメソッドは、このチャネルのファイルの特定の領域に対するロックを取得する操作を開始します。 パラメーターは handler 、ロックが取得されたとき (または操作が失敗した場合) に呼び出される完了ハンドラーです。 完了ハンドラーに渡される結果は、結果として得られます FileLock

パラメーターと size パラメーターでposition指定された領域は、実際の基になるファイル内に含まれている必要はありません。また、重複する必要もありません。 ロック領域のサイズは固定されています。ロックされた領域に最初にファイルの末尾が含まれており、ファイルが領域を超えて拡張された場合、ファイルの新しい部分はロックの対象になりません。 ファイルのサイズが拡大し、ファイル全体のロックが必要な場合は、0 から始まり、ファイルの予想される最大サイズ以下の領域をロックする必要があります。 2 引数 #lock(Object,CompletionHandler) メソッドは、サイズ Long#MAX_VALUEの領域をロックするだけです。 要求されたリージョンと重複するロックがこの Java 仮想マシンによって既に保持されている場合、または重複するリージョンをロックするためにこのメソッドが呼び出され、その操作が完了していない場合、このメソッドは をスローします OverlappingFileLockException

一部のオペレーティング システムでは、非同期的にファイル ロックを取得するメカニズムがサポートされていません。 そのため、実装では、バックグラウンド スレッド内のファイル ロック、または関連付けられているスレッド プール内のスレッドによって実行されるタスクからファイル ロックを取得できます。 未処理のロック操作が多数ある場合は、Java 仮想マシンのスレッドを無期限に消費する可能性があります。

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

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

の Java ドキュメント java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>)

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

適用対象