AsynchronousFileChannel.Lock メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
オーバーロード
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)
このページの一部は、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
です。
パラメーターでposition
size
指定された領域は、実際の基になるファイル内に含まれている必要はありません。また、重複する必要もありません。 ロック領域のサイズは固定されています。ロックされた領域に最初にファイルの末尾が含まれており、ファイルが領域を超えて拡張された場合、ファイルの新しい部分はロックの対象になりません。 ファイルのサイズが大きくなると予想され、ファイル全体のロックが必要な場合は、0 から始まり、ファイルの予想される最大サイズより小さい領域をロックする必要があります。 2 引数 #lock(Object,CompletionHandler)
メソッドは、サイズ Long#MAX_VALUE
の領域をロックするだけです。 要求されたリージョンと重複するロックがこの Java 仮想マシンによって既に保持されている場合、または重複するリージョンをロックするためにこのメソッドが呼び出され、その操作が完了していない場合、このメソッドはスローします OverlappingFileLockException
。
一部のオペレーティング システムでは、非同期方式でファイル ロックを取得するメカニズムがサポートされていません。 その結果、実装は、バックグラウンド スレッドまたは関連付けられているスレッド プール内のスレッドによって実行されるタスクからファイル ロックを取得する可能性があります。 未処理のロック操作が多数ある場合は、Java 仮想マシン内のスレッドを無期限に消費する可能性があります。
一部のオペレーティング システムでは共有ロックがサポートされていません。その場合、共有ロックの要求は排他ロックの要求に自動的に変換されます。 新しく取得したロックが共有されているか排他的であるかは、結果のロック オブジェクトの FileLock#isShared() isShared
メソッドを呼び出すことによってテストできます。
ファイル ロックは、Java 仮想マシン全体に代わって保持されます。 同じ仮想マシン内の複数のスレッドによるファイルへのアクセスの制御には適していません。
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。