Модуль Базовый модуль

Модуль сопрограммы

Модуль управления параллелизмом

Контрольный метод:

1
var coroutine = require('coroutine');

объект

Lock

Блокировка объекта, см. Lock

1
Lock coroutine.Lock;

Semaphore

Semaphore объект, см. Semaphore

1
Semaphore coroutine.Semaphore;

Condition

Условная переменная объекта, см. Condition

1
Condition coroutine.Condition;

Event

Объект события, см. Event

1
Event coroutine.Event;

Worker

Независимый рабочий объект потока, см. Worker

1
Worker coroutine.Worker;

Статическая функция

start

Запустите волокно и вернитесь к объекту волокна

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

Параметры вызова:

  • func : функция, сформулировать функцию выполнения волокна
  • args : ..., последовательность параметров переменной, эта последовательность будет передана функции в волокне

Вернуть результат:

  • Fiber , объект возврата волокна

parallel

Выполнить набор функций параллельно и ждать возврата

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

Параметры вызова:

  • funcs : Array, массив функций, выполняемых параллельно
  • fibers : Integer, ограничить количество одновременных fibers , по умолчанию -1, включить то же количество волокон, что и функции

Вернуть результат:

  • Array , возвращает массив результатов выполнения функции

Выполнить функцию параллельно, чтобы обработать набор данных и ждать возврата

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

Параметры вызова:

  • datas : массив, массив данных для параллельного выполнения
  • func : функция, функция выполняется параллельно
  • fibers : Integer, ограничить количество одновременных fibers , по умолчанию -1, включить то же количество волокон, что и данные

Вернуть результат:

  • Array , возвращает массив результатов выполнения функции

Выполнить функцию несколько раз параллельно и ждать возврата

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

Параметры вызова:

  • func : Функция, количество функций, выполняемых параллельно
  • num : Integer, количество повторяющихся задач
  • fibers : Integer, ограничить количество одновременных fibers , по умолчанию -1, включить то же количество волокон, что и функции

Вернуть результат:

  • Array , возвращает массив результатов выполнения функции

Выполнить набор функций параллельно и ждать возврата

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

Параметры вызова:

  • funcs : ..., набор функций, выполняемых параллельно

Вернуть результат:

  • Array , возвращает массив результатов выполнения функции

current

Возвращает текущее волокно

1
static Fiber coroutine.current();

Вернуть результат:

  • Fiber , текущий объект волокна

sleep

Пауза текущего волокна на указанное время

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

Параметры вызова:

  • ms : Integer, укажите время для паузы, в миллисекундах, значение по умолчанию - 0, то есть немедленно вернуться к возобновлению работы при простое

Статическая собственность

fibers

Array, возвращает все работающие в данный момент оптоволоконные массивы.

1
static readonly Array coroutine.fibers;

spareFibers

Целое число, запрос и установка количества незанятых Fiber . Когда дрожание сервера велико, количество незанятых Fiber может быть соответствующим образом увеличено. По умолчанию 256

1
static Integer coroutine.spareFibers;

vmid

Целое число, запросить текущий номер vm

1
static readonly Integer coroutine.vmid;

loglevel

Целое число, измените и запросите выходной уровень этого vm для фильтрации выходной информации, по умолчанию это console.NOTSET , все выходные данные

1
static Integer coroutine.loglevel;