Módulo módulo básico

Coroutine del módulo

Módulo de control de concurrencia

Método de referencia:

1
var coroutine = require('coroutine');

Objeto

Lock

Bloquear objeto, ver Lock

1
Lock coroutine.Lock;

Semaphore

Objeto Semaphore , consulte Semaphore

1
Semaphore coroutine.Semaphore;

Condition

Objeto de variable de condición, consulte Condition

1
Condition coroutine.Condition;

Event

Objeto de evento, consulte Event

1
Event coroutine.Event;

Worker

Objeto de trabajo de hilo independiente, ver Worker

1
Worker coroutine.Worker;

Función estática

start

Inicie una fibra y vuelva al objeto de fibra

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

Parámetros de llamada:

  • func : Función, especifica la función que ejecuta la fibra.
  • args : ..., una secuencia de parámetros variables, esta secuencia se pasará a la función en la fibra

Devolver resultado:

  • Fiber , devuelve el objeto de fibra

parallel

Ejecuta un conjunto de funciones en paralelo y espera el retorno

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

Parámetros de llamada:

  • funcs : Array, arreglo de funciones ejecutadas en paralelo
  • fibers : Entero, limita el número de fibers concurrentes, el valor predeterminado es -1, habilita el mismo número de fibras que funciones

Devolver resultado:

  • Array , devuelve una matriz de resultados de ejecución de funciones

Ejecuta una función en paralelo para procesar un conjunto de datos y espera la devolución

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

Parámetros de llamada:

  • datas : Array, matriz de datos para ejecución paralela
  • func : función, función ejecutada en paralelo
  • fibers : Entero, limitar el número de fibers concurrentes, el valor predeterminado es -1, habilitar el mismo número de fibras que los datos

Devolver resultado:

  • Array , devuelve una matriz de resultados de ejecución de funciones

Ejecute una función varias veces en paralelo y espere a que regrese

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

Parámetros de llamada:

  • func : Función, el número de funciones ejecutadas en paralelo
  • num : Integer, el número de tareas repetidas
  • fibers : Entero, limita el número de fibers concurrentes, el valor predeterminado es -1, habilita el mismo número de fibras que funciones

Devolver resultado:

  • Array , devuelve una matriz de resultados de ejecución de funciones

Ejecuta un conjunto de funciones en paralelo y espera el retorno

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

Parámetros de llamada:

  • funcs : ..., un conjunto de funciones ejecutadas en paralelo

Devolver resultado:

  • Array , devuelve una matriz de resultados de ejecución de funciones

current

Devuelve la fibra actual

1
static Fiber coroutine.current();

Devolver resultado:

  • Fiber , el objeto de fibra actual

sleep

Pausar la fibra actual durante el tiempo especificado

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

Parámetros de llamada:

  • ms : Entero, especifica el tiempo de pausa, en milisegundos, el valor predeterminado es 0, es decir, se reanudará inmediatamente si está libre

Propiedades estáticas

fibers

Array, devuelve todos los arreglos de fibra en ejecución

1
static readonly Array coroutine.fibers;

spareFibers

Entero, consulta y establece el número de Fiber inactivas. Cuando la fluctuación del servidor es grande, la cantidad de Fiber inactivas se puede aumentar de manera apropiada. El valor predeterminado es 256

1
static Integer coroutine.spareFibers;

vmid

Entero, consulta el número de vm actual

1
static readonly Integer coroutine.vmid;

loglevel

Entero, modifique y consulte el nivel de salida de esta vm para filtrar la información de salida, el valor predeterminado es la console.NOTSET .

1
static Integer coroutine.loglevel;