Objet objet intégré

Verrouillage d'objet

Objet de verrouillage de fibre

Contrairement aux verrous du système d'exploitation, les verrous fibre sont implémentés de manière purement logique, et la charge de verrouillage et de déverrouillage est faible

1 2 3 4
var l = new coroutine.Lock(); l.acquire(); ..... l.release();

Héritage

#lineWidth: 1.5 #font: Helvetica,sans-Serif #fontSize: 10 #leading: 1.6 #.this: fill=lightgray #.class: fill=white [<class>object|toString();toJSON()] [<this>Lock|new Lock()|acquire();release();count()] [<class>Condition] [<class>Event] [<class>Semaphore] [object] <:- [Lock] [Lock] <:- [Condition] [Lock] <:- [Event] [Lock] <:- [Semaphore] Lock new Lock() acquire() release() count() object toString() toJSON() Condition Event Semaphore

Constructeur

Lock

Constructeur

1
new Lock();

Fonction membre

acquire

Acquérir la propriété de la serrure

1
Boolean Lock.acquire(Boolean blocking = true);

Paramètres d'appel :

  • blocking: booléen, spécifiez s'il faut attendre, si c'est vrai, attendez, la valeur par défaut est vraie

Résultat de retour :

  • Boolean, Renvoie si le verrou est acquis avec succès, true signifie que l'acquisition est réussie

La méthode d'acquisition est utilisée pour acquérir la propriété du verrou. Lorsque le verrou est dans un état pouvant être acquis, cette méthode renvoie true immédiatement.

Lorsque le verrou n'est pas disponible et que le blocage est vrai, la fibre actuelle se met en veille. Lorsque d'autres fibres libèrent le verrou, cette méthode renvoie vrai.

Lorsque le verrou n'est pas disponible et que le blocage est faux, la méthode renvoie faux.


release

Libérer la propriété du verrou

1
Lock.release();

Cette méthode libérera la propriété du verrou. Si la fibre actuelle ne possède pas le verrou, cette méthode générera une erreur.


count

Interroger le nombre de tâches actuellement en attente

1
Integer Lock.count();

Résultat de retour :

  • Integer, Renvoie le nombre de tâches

toString

Renvoie la représentation sous forme de chaîne de l'objet, renvoie généralement "[Objet natif]", l'objet peut être ré-implémenté selon ses propres caractéristiques

1
String Lock.toString();

Résultat de retour :

  • String, Renvoie la représentation sous forme de chaîne de l'objet

toJSON

Renvoie la représentation au format JSON de l'objet, renvoie généralement une collection d'attributs lisibles définis par l'objet

1
Value Lock.toJSON(String key = "");

Paramètres d'appel :

  • key: chaîne, inutilisé

Résultat de retour :

  • Value, Renvoie une valeur contenant JSON sérialisable