Langage

FileLock Classe

Définition

Jeton représentant un verrou sur une région d’un fichier.

[Android.Runtime.Register("java/nio/channels/FileLock", DoNotGenerateAcw=true)]
public abstract class FileLock : Java.Lang.Object, IDisposable, Java.Lang.IAutoCloseable
[<Android.Runtime.Register("java/nio/channels/FileLock", DoNotGenerateAcw=true)>]
type FileLock = class
    inherit Object
    interface IAutoCloseable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Héritage
Attributs
Implémente

Remarques

Jeton représentant un verrou sur une région d’un fichier.

Un objet de verrouillage de fichier est créé chaque fois qu’un verrou est acquis sur un fichier via l’une FileChannel#lock(long,long,boolean) lockFileChannel#tryLock(long,long,boolean) tryLock des méthodes ou l’une des méthodes de la FileChannel classe, ou les AsynchronousFileChannel#lock(long,long,boolean,Object,CompletionHandler) lock méthodes AsynchronousFileChannel#tryLock(long,long,boolean) tryLock de la AsynchronousFileChannel classe.

Un objet de verrouillage de fichier est initialement valide. Il reste valide jusqu’à ce que le verrou soit libéré en appelant la #release release méthode, en fermant le canal utilisé pour l’acquérir, ou par l’arrêt de la machine virtuelle Java, selon ce qui se produit en premier. La validité d’un verrou peut être testée en appelant sa #isValid isValid méthode.

Un verrou de fichier est exclusif ou partagé. Un verrou partagé empêche les autres programmes en cours d’exécution simultanée d’acquérir un verrou exclusif qui se chevauche, mais les autorise à acquérir des verrous partagés qui se chevauchent. Un verrou exclusif empêche les autres programmes d’acquérir un verrou qui se chevauche de l’un ou l’autre type. Une fois qu’il est libéré, un verrou n’a aucun effet supplémentaire sur les verrous qui peuvent être acquis par d’autres programmes.

Si un verrou est exclusif ou partagé peut être déterminé en appelant sa #isShared isShared méthode. Certaines plateformes ne prennent pas en charge les verrous partagés, auquel cas une demande de verrou partagé est automatiquement convertie en demande de verrou exclusif.

Les verrous conservés sur un fichier particulier par une seule machine virtuelle Java ne se chevauchent pas. La #overlaps overlaps méthode peut être utilisée pour tester si une plage de verrous candidate chevauche un verrou existant.

Un objet de verrouillage de fichier enregistre le canal de fichiers sur lequel le verrou est conservé, le type et la validité du verrou, ainsi que la position et la taille de la région verrouillée. Seule la validité d’un verrou est susceptible de changer au fil du temps ; tous les autres aspects de l’état d’un verrou sont immuables.

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 objets de verrouillage de fichiers sont sécurisés pour être utilisés par plusieurs threads simultanés.

« pdep"><h2> Dépendances <de plateforme /h2>

Cette API de verrouillage de fichiers est destinée à mapper directement à l’installation de verrouillage native du système d’exploitation sous-jacent. Ainsi, les verrous conservés sur un fichier doivent être visibles par tous les programmes qui ont accès au fichier, quel que soit le langage dans lequel ces programmes sont écrits.

Si un verrou empêche ou non un autre programme d’accéder au contenu de la région verrouillée dépend du système et n’est donc pas spécifié. Les installations natives de verrouillage de fichiers de certains systèmes sont simplement des conseils, ce qui signifie que les programmes doivent observer de manière coopérative un protocole de verrouillage connu afin de garantir l’intégrité des données. Sur d’autres systèmes, les verrous de fichiers natifs sont obligatoires, ce qui signifie que si un programme verrouille une région d’un fichier, d’autres programmes ne peuvent pas accéder à cette région d’une manière qui violerait le verrou. Sur d’autres systèmes, si les verrous de fichiers natifs sont consultatifs ou obligatoires sont configurables par fichier. Pour garantir un comportement cohérent et correct sur plusieurs plateformes, il est fortement recommandé d’utiliser les verrous fournis par cette API comme s’ils étaient des verrous consultatifs.

Sur certains systèmes, l’acquisition d’un verrou obligatoire sur une région d’un fichier empêche cette région d’être java.nio.channels.FileChannel#map <i>mapped into memory</i>, et vice versa. Les programmes qui combinent le verrouillage et le mappage doivent être préparés pour que cette combinaison échoue.

Sur certains systèmes, la fermeture d’un canal libère tous les verrous détenus par la machine virtuelle Java sur le fichier sous-jacent, que les verrous aient été acquis via ce canal ou via un autre canal ouvert sur le même fichier. Il est fortement recommandé que, dans un programme, un canal unique soit utilisé pour acquérir tous les verrous sur un fichier donné.

Certains systèmes de fichiers réseau permettent d’utiliser le verrouillage de fichiers avec des fichiers mappés en mémoire uniquement lorsque les régions verrouillées sont alignées sur les pages et un multiple entier de la taille de page du matériel sous-jacent. Certains systèmes de fichiers réseau n’implémentent pas de verrous de fichiers sur des régions qui s’étendent après une certaine position, souvent 2<sup>30</sup> ou 2<sup>31</sup>. En règle générale, vous devez prendre soin de verrouiller les fichiers qui résident sur des systèmes de fichiers réseau.

Ajouté dans la version 1.4.

Documentation Java pour java.nio.channels.FileLock.

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.

Constructeurs

Nom Description
FileLock(AsynchronousFileChannel, Int64, Int64, Boolean)

Initialise une nouvelle instance de cette classe.

FileLock(FileChannel, Int64, Int64, Boolean)

Initialise une nouvelle instance de cette classe.

FileLock(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
IsShared

Indique si ce verrou est partagé.

IsValid

Indique si ce verrou est un verrou de fichier valide.

JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
JniPeerMembers

Jeton représentant un verrou sur une région d’un fichier.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Nom Description
AcquiredBy()

Retourne le canal sur lequel ce verrou a été acquis.

Channel()

Retourne le canal de fichiers sur lequel ce verrou a été acquis.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
Close()

Cette méthode appelle la #release méthode.

Construct(JniObjectReference, JniObjectReferenceOptions)

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
Equals(Object)

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
Equals(Object)

Indique si un autre objet est « égal à » celui-ci.

(Hérité de Object)
GetHashCode()

Retourne une valeur de code de hachage pour l'objet.

(Hérité de Object)
JavaFinalize()

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
Overlaps(Int64, Int64)

Indique si ce verrou chevauche ou non la plage de verrous donnée.

Position()

Retourne la position dans le fichier du premier octet de la région verrouillée.

Release()

Libère ce verrou.

SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
Size()

Retourne la taille de la région verrouillée en octets.

ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une chaîne décrivant la plage, le type et la validité de ce verrou.

UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IJavaPeerable.Disposed()

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Jeton représentant un verrou sur une région d’un fichier.

(Hérité de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Jeton représentant un verrou sur une région d’un fichier.

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Jeton représentant un verrou sur une région d’un fichier.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à