Module basismodule

Module coroutine

Gelijktijdigheidscontrolemodule

coroutineDe module biedt een fiberAPI voor het controleren van de volgorde van uitvoering. Het stelt ontwikkelaars in staat handmatig te schakelen fiber, waardoor gezamenlijke multitasking mogelijk wordt. coroutineEen belangrijke functie van de module is sleepde functie waarmee de momenteel uitgevoerde fibermodule de CPU kan opgeven en andere fibermodules kan laten draaien.

Hier is een eenvoudige voorbeeldcode die laat zien hoe u coroutinede module kunt gebruiken:

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);

In de bovenstaande code definiëren we twee functies fooen bargebruiken we vervolgens coroutine.startde functie om beide te starten fiber. In elk fibergebruiken we coroutine.sleepde functie om de CPU vrij te maken en anderen te laten fiberwerken.

voorwerp

Lock

object vergrendelen, zieLock

1
Lock coroutine.Lock;

Semaphore

semafoorobject, zieSemaphore

1
Semaphore coroutine.Semaphore;

Condition

voorwaarde variabel object, zieCondition

1
Condition coroutine.Condition;

Event

gebeurtenisobject, zieEvent

1
Event coroutine.Event;

Worker

Onafhankelijk draadwerkobject, zieWorker

1
Worker coroutine.Worker;

statische functie

start

Start een vezel en retourneert het vezelobject

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

Oproepparameters:

  • func: Functie: specificeer de functie die door de vezel wordt uitgevoerd
  • args: ..., een variabele reeks argumenten die worden doorgegeven aan de functie binnen de vezel

Resultaten retourneren:

  • Fiber, retourneert het vezelobject

parallel

Voer een reeks functies parallel uit en wacht op terugkeer

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

Oproepparameters:

  • funcs: Array, reeks functies die parallel worden uitgevoerd
  • fibers: Geheel getal, beperkt het aantal gelijktijdige vezels, de standaardwaarde is -1, maakt hetzelfde aantal vezels mogelijk als funcs

Resultaten retourneren:

  • Array, retourneert een array met functie-uitvoeringsresultaten

Voer parallel een functie uit om een ​​set gegevens te verwerken en wacht op de terugkeer

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

Oproepparameters:

  • datas: Array, data-array voor parallelle uitvoering
  • func: Functie, functie die parallel wordt uitgevoerd
  • fibers: Geheel getal, beperkt het aantal gelijktijdige vezels, de standaardwaarde is -1, maakt hetzelfde aantal vezels mogelijk als data

Resultaten retourneren:

  • Array, retourneert een array met functie-uitvoeringsresultaten

Voer een functie meerdere keren parallel uit en wacht op terugkeer

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

Oproepparameters:

  • func: Functie, het aantal parallel uitgevoerde functies
  • num: geheel getal, aantal herhaalde taken
  • fibers: Geheel getal, beperkt het aantal gelijktijdige vezels, de standaardwaarde is -1, maakt hetzelfde aantal vezels mogelijk als funcs

Resultaten retourneren:

  • Array, retourneert een array met functie-uitvoeringsresultaten

Voer een reeks functies parallel uit en wacht op terugkeer

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

Oproepparameters:

  • funcs: ..., een reeks functies die parallel worden uitgevoerd

Resultaten retourneren:

  • Array, retourneert een array met functie-uitvoeringsresultaten

current

Retourneert de huidige vezel

1
static Fiber coroutine.current();

Resultaten retourneren:

  • Fiber, het huidige vezelobject

sleep

Pauzeer de huidige vezel gedurende de opgegeven tijd

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

Oproepparameters:

  • ms: Geheel getal, specificeert de pauzetijd, in milliseconden, de standaardwaarde is 0, dat wil zeggen dat de bewerking onmiddellijk wordt hervat als er tijd is.

statische eigenschappen

fibers

Array, retourneert alle actieve glasvezelarrays

1
static readonly Array coroutine.fibers;

spareFibers

Geheel getal, opvragen en inactief instellenFiberKwantiteit: wanneer de serverjitter groot is, kan de inactiviteit op passende wijze worden verhoogdFiberhoeveelheid. De standaardwaarde is 256

1
static Integer coroutine.spareFibers;

vmid

Geheel getal, vraag de huidige opvmserienummer

1
static readonly Integer coroutine.vmid;

loglevel

Integer, wijzig en bevraag ditvmHet uitvoerniveau wordt gebruikt om uitvoerinformatie te filteren. De standaardwaarde isconsole.NOTSET, voer alles uit

1
static Integer coroutine.loglevel;