Mòdul mòdul bàsic

Corrutina del mòdul

Mòdul de control de concurrència

coroutineEl mòdul proporciona una fiberAPI per controlar l'ordre d'execució. Permet als desenvolupadors canviar manualment fiber, permetent la multitasca col·laborativa. coroutineUna funció important del mòdul és sleepla funció, que permet que el fibermòdul que s'executa actualment cedi la CPU i permeti que altres fibermòduls funcionin.

Aquí teniu un exemple de codi senzill que mostra com utilitzar coroutineel mòdul:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
const coroutine = require('coroutine'); function foo() { console.log('start foo'); coroutine.sleep(1000); // enter sleep mode console.log('end foo'); } function bar() { console.log('start bar'); coroutine.sleep(2000); console.log('end bar'); } coroutine.start(foo); coroutine.start(bar);

Al codi anterior, definim dues funcions fooi bardesprés fem servir coroutine.startla funció per iniciar totes dues fiber. En cada fiber, fem servir coroutine.sleepla funció per alliberar la CPU i deixar que altres fiberfuncionin.

objecte

Lock

bloquejar objecte, veureLock

1
Lock coroutine.Lock;

Semaphore

objecte semàfor, vegeuSemaphore

1
Semaphore coroutine.Semaphore;

Condition

objecte variable de condició, vegeuCondition

1
Condition coroutine.Condition;

Event

objecte d'esdeveniment, vegeuEvent

1
Event coroutine.Event;

Worker

Objecte de treball de fil independent, vegeuWorker

1
Worker coroutine.Worker;

funció estàtica

start

Inicia una fibra i retorna l'objecte de fibra

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

Paràmetres de trucada:

  • func: Funció, especifica la funció executada per la fibra
  • args: ..., una seqüència variàdica d'arguments que es passaran a la funció dins de la fibra

Resultats de retorn:

  • Fiber, retorna l'objecte de fibra

parallel

Executeu un conjunt de funcions en paral·lel i espereu el retorn

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

Paràmetres de trucada:

  • funcs: Array, matriu de funcions executades en paral·lel
  • fibers: Enter, limita el nombre de fibres concurrents, el valor predeterminat és -1, habilita el mateix nombre de fibres que les funcions

Resultats de retorn:

  • Array, retorna una matriu de resultats d'execució de funcions

Executeu una funció en paral·lel per processar un conjunt de dades i espereu el retorn

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

Paràmetres de trucada:

  • datas: Array, matriu de dades per a l'execució paral·lela
  • func: Funció, funció executada en paral·lel
  • fibers: Enter, limita el nombre de fibres concurrents, el valor predeterminat és -1, habilita el mateix nombre de fibres que les dades

Resultats de retorn:

  • Array, retorna una matriu de resultats d'execució de funcions

Executeu una funció diverses vegades en paral·lel i espereu el retorn

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

Paràmetres de trucada:

  • func: Funció, el nombre de funcions executades en paral·lel
  • num: Nombre sencer, nombre de tasques repetides
  • fibers: Enter, limita el nombre de fibres concurrents, el valor predeterminat és -1, habilita el mateix nombre de fibres que les funcions

Resultats de retorn:

  • Array, retorna una matriu de resultats d'execució de funcions

Executeu un conjunt de funcions en paral·lel i espereu el retorn

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

Paràmetres de trucada:

  • funcs: ..., un conjunt de funcions executades en paral·lel

Resultats de retorn:

  • Array, retorna una matriu de resultats d'execució de funcions

current

Retorna la fibra actual

1
static Fiber coroutine.current();

Resultats de retorn:

  • Fiber, l'objecte de fibra actual

sleep

Posa en pausa la fibra actual durant el temps especificat

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

Paràmetres de trucada:

  • ms: Sencer, especifica el temps de pausa, en mil·lisegons, el valor per defecte és 0, és a dir, l'operació es reprendrà immediatament quan hi hagi temps.

propietats estàtiques

fibers

Array, retorna totes les matrius de fibra en funcionament

1
static readonly Array coroutine.fibers;

spareFibers

Enter, consulteu i configureu-lo com a inactiuFiberQuantitat, quan la fluctuació del servidor és gran, l'inactivitat es pot augmentar adequadamentFiberquantitat. El valor per defecte és 256

1
static Integer coroutine.spareFibers;

vmid

Enter, consulta l'actualvmnúmero de sèrie

1
static readonly Integer coroutine.vmid;

loglevel

Enter, modificar i consultar-hovmEl nivell de sortida s'utilitza per filtrar la informació de sortida. El valor predeterminat ésconsole.NOTSET, sortiu tot

1
static Integer coroutine.loglevel;