Module module de base

Module coroutine

Module de contrôle de simultanéité

Méthode de référence :

1
var coroutine = require('coroutine');

Objet

Lock

Verrouiller l'objet, voir Lock

1
Lock coroutine.Lock;

Semaphore

Objet sémaphore, voir Semaphore

1
Semaphore coroutine.Semaphore;

Condition

Objet variable de condition, voir Condition

1
Condition coroutine.Condition;

Event

Objet événement, voir Event

1
Event coroutine.Event;

Worker

Objet de travail de filetage indépendant, voir Worker

1
Worker coroutine.Worker;

Fonction statique

start

Démarrer une fibre et revenir à l'objet fibre

1 2
static Fiber coroutine.start(Function func, ...args);

Paramètres d'appel :

  • func: Fonction, spécifiez la fonction à exécuter par la fibre
  • args: ..., séquence de paramètre variable, cette séquence sera passée à la fonction dans la fibre

Résultat de retour :

  • Fiber, Objet fibre de retour

parallel

Exécuter un ensemble de fonctions en parallèle et attendre le retour

1 2
static Array coroutine.parallel(Array funcs, Integer fibers = -1);

Paramètres d'appel :

  • funcs: Array, un tableau de fonctions exécutées en parallèle
  • fibers: Entier, limite le nombre de fibres concurrentes, la valeur par défaut est -1, active le même nombre de fibres que funcs

Résultat de retour :

  • Array, Renvoie un tableau de résultats d'exécution de fonction

Exécuter une fonction en parallèle pour traiter un ensemble de données et attendre le retour

1 2 3
static Array coroutine.parallel(Array datas, Function func, Integer fibers = -1);

Paramètres d'appel :

  • datas: Tableau, tableau de données exécuté en parallèle
  • func: Fonction, fonction exécutée en parallèle
  • fibers: Entier, limite le nombre de fibres concurrentes, la valeur par défaut est -1, active le même nombre de fibres que les données

Résultat de retour :

  • Array, Renvoie un tableau de résultats d'exécution de fonction

Exécuter une fonction plusieurs fois en parallèle et attendre le retour

1 2 3
static Array coroutine.parallel(Function func, Integer num, Integer fibers = -1);

Paramètres d'appel :

  • func: Fonction, le nombre de fonctions exécutées en parallèle
  • num: Entier, le nombre de tâches répétitives
  • fibers: Entier, limite le nombre de fibres concurrentes, la valeur par défaut est -1, active le même nombre de fibres que funcs

Résultat de retour :

  • Array, Renvoie un tableau de résultats d'exécution de fonction

Exécuter un ensemble de fonctions en parallèle et attendre le retour

1
static Array coroutine.parallel(...funcs);

Paramètres d'appel :

  • funcs: ..., un ensemble de fonctions exécutées en parallèle

Résultat de retour :

  • Array, Renvoie un tableau de résultats d'exécution de fonction

current

Renvoie la fibre actuelle

1
static Fiber coroutine.current();

Résultat de retour :

  • Fiber, L'objet fibre courant

sleep

Pause le temps spécifié par la fibre actuelle

1
static coroutine.sleep(Integer ms = 0) async;

Paramètres d'appel :

  • ms: Entier, spécifiez le temps de pause, en millisecondes, la valeur par défaut est 0, c'est-à-dire qu'il reprendra son exécution immédiatement s'il est libre

Propriétés statiques

fibers

Array, renvoie tous les tableaux de fibres en cours d'exécution

1
static readonly Array coroutine.fibers;

spareFibers

Entier, requête et mise en veille Fiber Nombre, l'inactivité peut être augmentée modérément lorsque la gigue du serveur est importante FiberQuantité. La valeur par défaut est 256

1
static Integer coroutine.spareFibers;

vmid

Entier, requête actuelle vm Numérotage

1
static readonly Integer coroutine.vmid;

loglevel

Entier, modifier et interroger ce vm Le niveau de sortie, utilisé pour filtrer les informations de sortie, la valeur par défaut est console.NOTSET, Toutes les sorties

1
static Integer coroutine.loglevel;