模块 coroutine

并发控制模块

引用方法:

var coroutine = require('coroutine');

对象

Lock

锁对象,参见 Lock

Lock coroutine.Lock;

Semaphore

信号量对象,参见 Semaphore

Semaphore coroutine.Semaphore;

Condition

条件变量对象,参见 Condition

Condition coroutine.Condition;

Event

事件对象,参见 Event

Event coroutine.Event;

BlockQueue

阻塞队列对象,参见 BlockQueue

BlockQueue coroutine.BlockQueue;

Worker

独立线程工作对象,参见 Worker

Worker coroutine.Worker;

静态函数

start

启动一个纤程并返回纤程对象

static Fiber coroutine.start(Function func,
    ...);

调用参数:

返回结果:


parallel

并行执行一组函数,并等待返回

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

调用参数:

返回结果:


并行执行一个函数处理一组数据,并等待返回

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

调用参数:

返回结果:


并行执行一个函数多次,并等待返回

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

调用参数:

返回结果:


并行执行一组函数,并等待返回

static Array coroutine.parallel(...);

调用参数:

返回结果:


current

返回当前纤程

static Fiber coroutine.current();

返回结果:


sleep

暂停当前纤程指定的时间

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

调用参数:

静态属性

fibers

Array, 返回当前正在运行的全部 fiber 数组

static readonly Array coroutine.fibers;

spareFibers

Integer, 查询和设置空闲 Fiber 数量,服务器抖动较大时可适度增加空闲 Fiber 数量。缺省为 256

static Integer coroutine.spareFibers;

vmid

Integer, 查询当前 vm 编号

static readonly Integer coroutine.vmid;

loglevel

Integer, 修改和查询本 vm 的输出级别,用以过滤输出信息,缺省为 console.NOTSET,全部输出

static Integer coroutine.loglevel;