对象 Lock

纤程锁对象

不同于操作系统的锁,纤程锁是纯逻辑实现,加锁与解锁负荷很小

var l = new coroutine.Lock();
l.acquire();
.....
l.release();

继承关系

构造函数

Lock

构造函数

new Lock();

成员函数

acquire

获取锁的拥有权

Boolean Lock.acquire(Boolean blocking = true);

调用参数:

返回结果:

acquire 方法用于获取锁的拥有权,当锁处于可获取状态时,此方法立即返回 true。

当锁不可获取,且 blocking 为 true,则当前纤程进入休眠,当其他纤程释放锁后,此方法返回 true。

当锁不可获取,且 blocking 为 false,则方法返回 false。


release

释放锁的拥有权

Lock.release();

此方法将释放对锁的拥有权,如果当前纤程未拥有锁,此方法将抛出错误。


count

查询当前等待任务数

Integer Lock.count();

返回结果:


dispose

强制回收对象,调用此方法后,对象资源将立即释放

Lock.dispose();

equals

比较当前对象与给定的对象是否相等

Boolean Lock.equals(object expected);

调用参数:

返回结果:


toString

返回对象的字符串表示,一般返回 "[Native Object]",对象可以根据自己的特性重新实现

String Lock.toString();

返回结果:


toJSON

返回对象的 JSON 格式表示,一般返回对象定义的可读属性集合

Value Lock.toJSON(String key = "");

调用参数:

返回结果:


valueOf

返回对象本身的数值

Value Lock.valueOf();

返回结果: