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

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

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

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

1
var coroutine = require('coroutine');

Объект

Lock

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

1
Lock coroutine.Lock;

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: Массив, массив функций, выполняемых параллельно
  • fibers: Целое число, ограничить количество параллельных волокон, по умолчанию -1, включить такое же количество волокон, что и функции

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

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

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

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

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

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

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

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

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

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

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

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