AsynchronousFileChannel.Lock Methode

Definition

Überlädt

Lock()

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

Lock(Object, ICompletionHandler)

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

Lock(Int64, Int64, Boolean)

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

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

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

Lock()

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

[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

Gibt zurück

ein Future Objekt, das das ausstehende Ergebnis darstellt

Attribute

Hinweise

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

Diese Methode initiiert einen Vorgang zum Abrufen einer exklusiven Sperre für die Datei dieses Kanals. Die Methode gibt ein Future , das ausstehende Ergebnis des Vorgangs darstellt. Die Future's Future#get() get Methode gibt den FileLock erfolgreichen Abschluss zurück.

Ein Aufruf dieser Methode verhält sich genauso wie der Aufruf

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

Java-Dokumentation für java.nio.channels.AsynchronousFileChannel.lock().

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Lock(Object, ICompletionHandler)

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

[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

Parameter

attachment
Object

Das Objekt, das an den E/A-Vorgang angefügt werden soll; kann sein null

handler
ICompletionHandler

Der Handler für die Verwendung des Ergebnisses

Attribute

Hinweise

Erwirbt eine exklusive Sperre für die Datei dieses Kanals.

Diese Methode initiiert einen Vorgang, um eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen. Der handler Parameter ist ein Abschlusshandler, der aufgerufen wird, wenn die Sperre abgerufen wird (oder der Vorgang fehlschlägt). Das an den Abschlusshandler übergebene Ergebnis ist das resultierende FileLockErgebnis.

Ein Aufruf dieser Methode des Formulars ch.lock(att,handler) verhält sich genauso wie der Aufruf

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

Java-Dokumentation für java.nio.channels.AsynchronousFileChannel.lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Lock(Int64, Int64, Boolean)

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

[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

Parameter

position
Int64

Die Position, an der der gesperrte Bereich gestartet werden soll; muss nicht negativ sein

size
Int64

Die Größe des gesperrten Bereichs; muss nicht negativ sein, und die Summe position + size muss nicht negativ sein.

shared
Boolean

true um eine freigegebene Sperre anzufordern, in diesem Fall muss dieser Kanal zum Lesen (und möglicherweise Schreiben) geöffnet sein; false um eine exklusive Sperre anzufordern, in diesem Fall muss dieser Kanal zum Schreiben (und möglicherweise lesen) geöffnet sein.

Gibt zurück

ein Future Objekt, das das ausstehende Ergebnis darstellt

Attribute

Hinweise

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

Diese Methode initiiert einen Vorgang, um eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen. Die Methode verhält sich genau so wie die #lock(long, long, boolean, Object, CompletionHandler) Methode, mit der Ausnahme, dass diese Methode anstelle eines Vervollständigungshandlers ein Future darstellungsendes Ergebnis zurückgibt. Die Future's Future#get() get Methode gibt den FileLock erfolgreichen Abschluss zurück.

Java-Dokumentation für java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

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

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

[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

Parameter

position
Int64

Die Position, an der der gesperrte Bereich gestartet werden soll; muss nicht negativ sein

size
Int64

Die Größe des gesperrten Bereichs; muss nicht negativ sein, und die Summe position + size muss nicht negativ sein.

shared
Boolean

true um eine freigegebene Sperre anzufordern, in diesem Fall muss dieser Kanal zum Lesen (und möglicherweise Schreiben) geöffnet sein; false um eine exklusive Sperre anzufordern, in diesem Fall muss dieser Kanal zum Schreiben (und möglicherweise lesen) geöffnet sein.

attachment
Object

Das Objekt, das an den E/A-Vorgang angefügt werden soll; kann sein null

handler
ICompletionHandler

Der Handler für die Verwendung des Ergebnisses

Attribute

Hinweise

Erwirbt eine Sperre für die angegebene Region der Datei dieses Kanals.

Diese Methode initiiert einen Vorgang, um eine Sperre für die angegebene Region der Datei dieses Kanals abzurufen. Der handler Parameter ist ein Abschlusshandler, der aufgerufen wird, wenn die Sperre abgerufen wird (oder der Vorgang fehlschlägt). Das an den Abschlusshandler übergebene Ergebnis ist das resultierende FileLockErgebnis.

Der durch die position Parameter size angegebene Bereich muss nicht in der tatsächlich zugrunde liegenden Datei enthalten sein oder sogar überlappen. Sperrbereiche sind in der Größe festgelegt; wenn ein gesperrter Bereich anfangs das Ende der Datei enthält und die Datei über den Bereich hinaus wächst, wird der neue Teil der Datei nicht von der Sperre abgedeckt. Wenn erwartet wird, dass eine Datei größer wird und eine Sperre für die gesamte Datei erforderlich ist, sollte ein Bereich mit Null und nicht kleiner als die erwartete maximale Größe der Datei gesperrt werden. Die Methode mit zwei Argumenten #lock(Object,CompletionHandler) sperrt einfach einen Bereich der Größe Long#MAX_VALUE. Wenn eine Sperre, die den angeforderten Bereich überlappt, bereits von diesem virtuellen Java-Computer gehalten wird oder diese Methode aufgerufen wurde, um einen überlappenden Bereich zu sperren und dieser Vorgang nicht abgeschlossen wurde, wird diese Methode ausgelöst OverlappingFileLockException.

Einige Betriebssysteme unterstützen keinen Mechanismus zum Abrufen einer Dateisperre auf asynchrone Weise. Daher kann eine Implementierung die Dateisperre in einem Hintergrundthread oder von einer Aufgabe abrufen, die von einem Thread im zugeordneten Threadpool ausgeführt wird. Wenn viele Sperrvorgänge ausstehen, kann sie Threads auf dem virtuellen Java-Computer für unbestimmte Zeiträume nutzen.

Einige Betriebssysteme unterstützen keine freigegebenen Sperren. In diesem Fall wird eine Anforderung für eine freigegebene Sperre automatisch in eine Anforderung für eine exklusive Sperre konvertiert. Ob die neu erworbene Sperre freigegeben oder exklusiv ist, kann durch Aufrufen der Methode des resultierenden Sperrobjekts FileLock#isShared() isShared getestet werden.

Dateisperren werden im Namen des gesamten virtuellen Java-Computers gespeichert. Sie eignen sich nicht für die Steuerung des Zugriffs auf eine Datei durch mehrere Threads innerhalb desselben virtuellen Computers.

Java-Dokumentation für java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für: