Module module de base

Module coroutine

Module de contrôle d'accès concurrentiel

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 de variable de 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émarrez une fibre et revenez à l'objet fibre

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

Paramètres d'appel:

  • func : Function, spécifie la fonction exécutée par la fibre
  • args : ..., une séquence de paramètres variables, cette séquence sera passée à la fonction dans la fibre

Résultat de retour:

  • Fiber , renvoie l'objet fibre

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 : tableau, tableau de fonctions exécutées en parallèle
  • fibers : Entier, limite le nombre de fibers simultanées, la valeur par défaut est -1, active le même nombre de fibres que les fonctions

Résultat de retour:

  • Array , renvoie un tableau des résultats de l'exécution de la 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 : 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 des résultats de l'exécution de la 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 : Function, le nombre de fonctions exécutées en parallèle
  • num : Entier, le nombre de tâches répétées
  • fibers : Entier, limite le nombre de fibers simultanées, la valeur par défaut est -1, active le même nombre de fibres que les fonctions

Résultat de retour:

  • Array , renvoie un tableau des résultats de l'exécution de la 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 des résultats de l'exécution de la 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 qu'il recommencera à fonctionner immédiatement s'il est libre

Propriétés statiques

fibers

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

1
static readonly Array coroutine.fibers;

spareFibers

Entier, interrogez et définissez le nombre de Fiber inactives. Lorsque la gigue du serveur est importante, le nombre de Fiber inactives peut être augmenté de manière appropriée. La valeur par défaut est 256

1
static Integer coroutine.spareFibers;

vmid

Entier, interrogez le numéro de vm actuel

1
static readonly Integer coroutine.vmid;

loglevel

Entier, modifiez et interrogez le niveau de sortie de cette vm pour filtrer les informations de sortie, la valeur par défaut est console.NOTSET , toutes les sorties

1
static Integer coroutine.loglevel;