Module Module de base

Module coroutine

Module de contrôle d'accès simultané

Méthode de référence:

1
var coroutine = require('coroutine');

Objet

Lock

Verrouiller l'objet, voir Lock

1
Lock coroutine.Lock;

Semaphore

Objet Semaphore , voir Semaphore

1
Semaphore coroutine.Semaphore;

Condition

Objet variable Condition, voir Condition

1
Condition coroutine.Condition;

Event

Objet d'événement, voir Event

1
Event coroutine.Event;

Worker

Objet de travail de thread 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 : Function, formule la fonction d'exécution de la fibre
  • args : ..., séquence de paramètres variables, cette séquence sera passée à la fonction dans la fibre

Résultat de retour:

  • Fiber , objet en fibre de retour

parallel

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

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

Paramètres d'appel:

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

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 un retour

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

Paramètres d'appel:

  • datas : Array, tableau de données pour exécution parallèle
  • func : Fonction, fonction exécutée en parallèle
  • fibers : Entier, limiter le nombre de fibers simultanées, la valeur par défaut est -1, activer 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 un retour

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

Paramètres d'appel:

  • func : Function, le nombre de fonctions exécutées en parallèle
  • num : Entier, le nombre de tâches répétées
  • fibers : Entier, limiter le nombre de fibers simultanées, la valeur par défaut est -1, activer le même nombre de fibres que les fonctions

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 un 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 , objet fibre actuel

sleep

Suspendre la fibre actuelle pendant la durée spécifiée

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, revenez immédiatement pour reprendre le fonctionnement

Propriété statique

fibers

Array, retourne toutes les baies de fibres en cours d'exécution

1
static readonly Array coroutine.fibers;

spareFibers

Entier, interroger et définir le nombre de Fiber inactives. Lorsque la gigue du serveur est importante, le nombre de Fiber inactives peut être augmenté modérément. La valeur par défaut est 256

1
static Integer coroutine.spareFibers;

vmid

Entier, interroger le numéro de vm actuel

1
static readonly Integer coroutine.vmid;

loglevel

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

1
static Integer coroutine.loglevel;