Modulo Modulo base

Modulo coroutine

Modulo di controllo della concorrenza

Metodo di riferimento:

1
var coroutine = require('coroutine');

Oggetto

Lock

Blocca oggetto, vedi Lock

1
Lock coroutine.Lock;

Semaphore

Oggetto Semaphore , vedi Semaphore

1
Semaphore coroutine.Semaphore;

Condition

Oggetto variabile condizione, consultare Condition

1
Condition coroutine.Condition;

Event

Oggetto evento, vedi Event

1
Event coroutine.Event;

Worker

Oggetto di lavoro thread indipendente, vedi Worker

1
Worker coroutine.Worker;

Funzione statica

start

Avviare una fibra e tornare all'oggetto fibra

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

Parametri di chiamata:

  • func : Function, formula la funzione dell'esecuzione della fibra
  • args : ..., sequenza di parametri variabili, questa sequenza verrà passata alla funzione nella fibra

Risultato di ritorno:

  • Fiber , oggetto in fibra di ritorno

parallel

Esegui una serie di funzioni in parallelo e attendi un ritorno

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

Parametri di chiamata:

  • funcs : Array, array di funzioni eseguite in parallelo
  • fibers : numero intero, limita il numero di fibers concorrenti, il valore predefinito è -1, abilita lo stesso numero di fibre di funzioni

Risultato di ritorno:

  • Array , restituisce una matrice di risultati dell'esecuzione della funzione

Eseguire una funzione in parallelo per elaborare un set di dati e attendere un ritorno

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

Parametri di chiamata:

  • datas : array, array di dati per l'esecuzione parallela
  • func : Funzione, funzione eseguita in parallelo
  • fibers : numero intero, limita il numero di fibers concorrenti, il valore predefinito è -1, abilita lo stesso numero di fibre dei dati

Risultato di ritorno:

  • Array , restituisce una matrice di risultati dell'esecuzione della funzione

Esegui una funzione più volte in parallelo e attendi un ritorno

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

Parametri di chiamata:

  • func : Function, il numero di funzioni eseguite in parallelo
  • num : intero, il numero di attività ripetute
  • fibers : numero intero, limita il numero di fibers concorrenti, il valore predefinito è -1, abilita lo stesso numero di fibre di funzioni

Risultato di ritorno:

  • Array , restituisce una matrice di risultati dell'esecuzione della funzione

Esegui una serie di funzioni in parallelo e attendi un ritorno

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

Parametri di chiamata:

  • funcs : ..., un insieme di funzioni eseguite in parallelo

Risultato di ritorno:

  • Array , restituisce una matrice di risultati dell'esecuzione della funzione

current

Restituisce la fibra corrente

1
static Fiber coroutine.current();

Risultato di ritorno:

  • Fiber , oggetto attuale in fibra

sleep

Metti in pausa la fibra corrente per il tempo specificato

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

Parametri di chiamata:

  • ms : numero intero, specifica il tempo di pausa, in millisecondi, il valore predefinito è 0, ovvero ritorna immediatamente per riprendere l'operazione quando è inattivo

Proprietà statica

fibers

Array, restituisce tutti gli array di fibre attualmente in esecuzione

1
static readonly Array coroutine.fibers;

spareFibers

Integer, interroga e imposta il numero di Fiber inattive. Quando il jitter del server è elevato, il numero di Fiber inattive può essere aumentato moderatamente. L'impostazione predefinita è 256

1
static Integer coroutine.spareFibers;

vmid

Numero intero, interroga il numero vm corrente

1
static readonly Integer coroutine.vmid;

loglevel

Integer, modifica ed esegui query sul livello di output di questo vm per filtrare le informazioni di output, il valore predefinito è console.NOTSET , tutto l'output

1
static Integer coroutine.loglevel;