Partager via


AsynchronousFileChannel.Lock Méthode

Définition

Surcharges

Lock()

Acquiert un verrou exclusif sur le fichier de ce canal.

Lock(Object, ICompletionHandler)

Acquiert un verrou exclusif sur le fichier de ce canal.

Lock(Int64, Int64, Boolean)

Acquiert un verrou sur la région donnée du fichier de ce canal.

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

Acquiert un verrou sur la région donnée du fichier de ce canal.

Lock()

Acquiert un verrou exclusif sur le fichier de ce canal.

[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

Retours

objet Future représentant le résultat en attente

Attributs

Remarques

Acquiert un verrou exclusif sur le fichier de ce canal.

Cette méthode lance une opération pour acquérir un verrou exclusif sur le fichier de ce canal. La méthode retourne un Future représentant le résultat en attente de l’opération. La Futureméthode 's Future#get() get retourne l’achèvement FileLock réussi.

Un appel de cette méthode se comporte exactement de la même façon que l’appel

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

Documentation Java pour java.nio.channels.AsynchronousFileChannel.lock().

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

Lock(Object, ICompletionHandler)

Acquiert un verrou exclusif sur le fichier de ce canal.

[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

Paramètres

attachment
Object

Objet à attacher à l’opération d’E/S ; peut être null

handler
ICompletionHandler

Gestionnaire de consommation du résultat

Attributs

Remarques

Acquiert un verrou exclusif sur le fichier de ce canal.

Cette méthode lance une opération pour acquérir un verrou sur la région donnée du fichier de ce canal. Le handler paramètre est un gestionnaire d’achèvement appelé lorsque le verrou est acquis (ou l’opération échoue). Le résultat passé au gestionnaire d’achèvement est le résultat FileLock.

Un appel de cette méthode du formulaire ch.lock(att,handler) se comporte exactement de la même façon que l’appel

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

Documentation Java pour java.nio.channels.AsynchronousFileChannel.lock(A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

Lock(Int64, Int64, Boolean)

Acquiert un verrou sur la région donnée du fichier de ce canal.

[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

Paramètres

position
Int64

Position à laquelle la région verrouillée doit démarrer ; doit être non négatif

size
Int64

Taille de la région verrouillée ; doit être non négatif, et la somme position  ;+  ;size doit être non négative

shared
Boolean

true pour demander un verrou partagé, auquel cas ce canal doit être ouvert pour la lecture (et éventuellement l’écriture) ; false pour demander un verrou exclusif, auquel cas ce canal doit être ouvert pour l’écriture (et éventuellement la lecture)

Retours

objet Future représentant le résultat en attente

Attributs

Remarques

Acquiert un verrou sur la région donnée du fichier de ce canal.

Cette méthode lance une opération pour acquérir un verrou sur la région donnée du fichier de ce canal. La méthode se comporte exactement de la même manière que la #lock(long, long, boolean, Object, CompletionHandler) méthode, sauf qu’au lieu de spécifier un gestionnaire d’achèvement, cette méthode retourne un Future résultat représentant le résultat en attente. La Futureméthode 's Future#get() get retourne l’achèvement FileLock réussi.

Documentation Java pour java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à

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

Acquiert un verrou sur la région donnée du fichier de ce canal.

[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

Paramètres

position
Int64

Position à laquelle la région verrouillée doit démarrer ; doit être non négatif

size
Int64

Taille de la région verrouillée ; doit être non négatif, et la somme position  ;+  ;size doit être non négative

shared
Boolean

true pour demander un verrou partagé, auquel cas ce canal doit être ouvert pour la lecture (et éventuellement l’écriture) ; false pour demander un verrou exclusif, auquel cas ce canal doit être ouvert pour l’écriture (et éventuellement la lecture)

attachment
Object

Objet à attacher à l’opération d’E/S ; peut être null

handler
ICompletionHandler

Gestionnaire de consommation du résultat

Attributs

Remarques

Acquiert un verrou sur la région donnée du fichier de ce canal.

Cette méthode lance une opération pour acquérir un verrou sur la région donnée du fichier de ce canal. Le handler paramètre est un gestionnaire d’achèvement appelé lorsque le verrou est acquis (ou l’opération échoue). Le résultat passé au gestionnaire d’achèvement est le résultat FileLock.

La région spécifiée par les paramètres et size ne position doit pas être contenue dans le fichier sous-jacent réel, ni même se chevaucher. Les régions de verrouillage sont fixes en taille ; si une région verrouillée contient initialement la fin du fichier et que le fichier dépasse la région, la nouvelle partie du fichier ne sera pas couverte par le verrou. Si un fichier devrait augmenter de taille et qu’un verrou sur l’ensemble du fichier est nécessaire, une région commençant à zéro, et pas plus petite que la taille maximale attendue du fichier, doit être verrouillée. La méthode à deux arguments #lock(Object,CompletionHandler) verrouille simplement une région de taille Long#MAX_VALUE. Si un verrou qui chevauche la région demandée est déjà conservé par cette machine virtuelle Java, ou si cette méthode a été appelée pour verrouiller une région qui se chevauche et que cette opération n’est pas terminée, cette méthode lève OverlappingFileLockException.

Certains systèmes d’exploitation ne prennent pas en charge un mécanisme permettant d’acquérir un verrou de fichier de manière asynchrone. Par conséquent, une implémentation peut acquérir le verrou de fichier dans un thread d’arrière-plan ou à partir d’une tâche exécutée par un thread dans le pool de threads associé. S’il existe de nombreuses opérations de verrouillage en attente, il peut consommer des threads dans la machine virtuelle Java pendant des périodes indéfinies.

Certains systèmes d’exploitation ne prennent pas en charge les verrous partagés, auquel cas une demande de verrouillage partagé est automatiquement convertie en demande de verrou exclusif. Si le verrou nouvellement acquis est partagé ou exclusif peut être testé en appelant la méthode de l’objet de FileLock#isShared() isShared verrou résultant.

Les verrous de fichier sont conservés au nom de l’ensemble de la machine virtuelle Java. Ils ne conviennent pas pour contrôler l’accès à un fichier par plusieurs threads au sein de la même machine virtuelle.

Documentation Java pour java.nio.channels.AsynchronousFileChannel.lock(long, long, boolean, A, java.nio.channels.CompletionHandler<java.nio.channels.FileLock, ? super A>).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

S’applique à