Partager via


FileChannel.Lock Méthode

Définition

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.

S’applique à