/// /// /** * @description 纤程锁对象 * * 不同于操作系统的锁,纤程锁是纯逻辑实现,加锁与解锁负荷很小 * ```JavaScript * var l = new coroutine.Lock(); * l.acquire(); * ..... * l.release(); * ``` * */ declare class Class_Lock extends Class_object { /** * @description 构造函数 */ constructor(); /** * @description 获取锁的拥有权 * * acquire 方法用于获取锁的拥有权,当锁处于可获取状态时,此方法立即返回 true。 * * 当锁不可获取,且 blocking 为 true,则当前纤程进入休眠,当其他纤程释放锁后,此方法返回 true。 * * 当锁不可获取,且 blocking 为 false,则方法返回 false。 * @param blocking 指定是否等待,为 true 时等待,缺省为真 * @return 返回是否成功获取锁,为 true 表示成功获取 * */ acquire(blocking?: boolean): boolean; /** * @description 释放锁的拥有权 * * 此方法将释放对锁的拥有权,如果当前纤程未拥有锁,此方法将抛出错误。 * */ release(): void; /** * @description 查询当前等待任务数 * @return 返回任务数 * */ count(): number; }