次の方法で共有


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 保留中の結果を表す値を返します。 's Future#get() get メソッドはFuture、正常に完了した場合にFileLock返します。

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

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

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

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

適用対象

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>)

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

適用対象

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

ロックされた領域のサイズ。は負以外である必要があり、sum position + size は負以外である必要があります

shared
Boolean

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

戻り値

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

属性

注釈

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

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

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

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

適用対象

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

ロックされた領域のサイズ。は負以外である必要があり、sum position + size は負以外である必要があります

shared
Boolean

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

attachment
Object

I/O 操作にアタッチするオブジェクト。は、次のことができます。 null

handler
ICompletionHandler

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

属性

注釈

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

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

パラメーターでpositionsize指定された領域は、実際の基になるファイル内に含まれている必要はありません。また、重複する必要もありません。 ロック領域のサイズは固定されています。ロックされた領域に最初にファイルの末尾が含まれており、ファイルが領域を超えて拡張された場合、ファイルの新しい部分はロックの対象になりません。 ファイルのサイズが大きくなると予想され、ファイル全体のロックが必要な場合は、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>)

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

適用対象