AsynchronousFileChannel.Lock Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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 Future
mé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)
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 Future
mé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.
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.