FileChannel.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(Int64, Int64, Boolean) |
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/nio/channels/FileLock;", "")]
public Java.Nio.Channels.FileLock? Lock();
[<Android.Runtime.Register("lock", "()Ljava/nio/channels/FileLock;", "")>]
member this.Lock : unit -> Java.Nio.Channels.FileLock
Retours
Objet de verrou représentant le verrou nouvellement acquis
- Attributs
Exceptions
le canal de fichiers est fermé.
ce canal n’a pas été ouvert pour l’écriture.
soit un verrou soit déjà conservé qui chevauche cette demande de verrouillage, soit un autre thread attend d’acquérir un verrou qui chevauche cette demande.
le thread appelant a été interrompu en attendant d’acquérir le verrou.
le canal a été fermé pendant que le thread appelant attendait d’acquérir le verrou.
si une autre erreur d’E/S se produit lors de l’obtention du verrou demandé.
Remarques
Acquiert un verrou exclusif sur le fichier de ce canal.
Un appel de cette méthode du formulaire fc.lock()
se comporte exactement de la même façon que l’appel
fc.{@link #lock(long,long,boolean) lock}(0L, Long.MAX_VALUE, false)
Documentation Java pour java.nio.channels.FileChannel.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(Int64, Int64, Boolean)
Acquiert un verrou sur la région donnée du fichier de ce canal.
[Android.Runtime.Register("lock", "(JJZ)Ljava/nio/channels/FileLock;", "GetLock_JJZHandler")]
public abstract Java.Nio.Channels.FileLock? Lock(long position, long size, bool shared);
[<Android.Runtime.Register("lock", "(JJZ)Ljava/nio/channels/FileLock;", "GetLock_JJZHandler")>]
abstract member Lock : int64 * int64 * bool -> Java.Nio.Channels.FileLock
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 de verrou représentant le verrou nouvellement acquis
- Attributs
Exceptions
si position
ou size
est négatif.
si ce canal est fermé.
si la région demandée chevauche un verrou existant ou une demande de verrou en attente.
si le canal n’est pas ouvert en mode lecture, mais partagé est vrai.
si le canal n’est pas ouvert en mode écriture, mais partagé est false.
si ce canal est fermé par un autre thread pendant l’exécution de cette méthode.
si le thread est interrompu dans l’état d’attente sur le verrou de fichier souhaité.
si une autre erreur d’E/S se produit.
Remarques
Acquiert un verrou sur la région donnée du fichier de ce canal.
Un appel de cette méthode bloquera jusqu’à ce que la région puisse être verrouillée, que ce canal soit fermé ou que le thread appelant soit interrompu, selon ce qui se produit en premier.
Si ce canal est fermé par un autre thread lors d’un appel de cette méthode, il AsynchronousCloseException
est levée.
Si le thread appelant est interrompu en attendant d’acquérir le verrou, son état d’interruption est défini et un FileLockInterruptionException
sera levée. Si l’état d’interruption de l’appelant est défini lorsque cette méthode est appelée, cette exception est levée immédiatement ; l’état d’interruption du thread ne sera pas modifié.
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 d’argument #lock()
zéro verrouille simplement une région de taille Long#MAX_VALUE
.
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.FileChannel.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.