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

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

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

Эталонный метод:

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 : Function, определяет функцию, выполняемую волокном
  • args : ..., последовательность переменных параметров, эта последовательность будет передана функции в волокне

Результат возврата:

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

parallel

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

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

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

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

Результат возврата:

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

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

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

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

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

Результат возврата:

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

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

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

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

  • func : Функция, количество функций, выполняемых параллельно
  • num : Целое num , количество повторяющихся задач
  • fibers : целое число, ограничить количество параллельных 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 : целое число, укажите время паузы, в миллисекундах, по умолчанию 0, то есть он возобновит работу немедленно, если он свободен

Статические свойства

fibers

Массив, возвращает все запущенные в данный момент массивы волокон

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;