$isInited
$isInited : boolean
是否已初始化过
原子计数管理类
wait(string $name, float $timeout = -1) : boolean
当原子计数的值为0时程序进入等待状态。另外一个进程调用wakeup可以再次唤醒程序。底层基于Linux Futex实现,使用此特性,可以仅用4字节内存实现一个等待、通知、锁的功能。 超时返回false,错误码为EAGAIN,可使用swoole_errno函数获取 成功返回true,表示有其他进程通过wakeup成功唤醒了当前的锁 使用wait/wakeup特性时,原子计数的值只能为0或1,否则会导致无法正常使用 当然原子计数的值为1时,表示不需要进入等待状态,资源当前就是可用。wait函数会立即返回true
string | $name | 原子计数对象名称 |
float | $timeout | 指定超时时间,默认为-1,表示永不超时,会持续等待直到有其他进程唤醒 |
wakeup(string $name, integer $n = 1) : boolean
唤醒处于wait状态的其他进程。 当前原子计数如果为0时,表示没有进程正在wait,wakeup会立即返回true 当前原子计数如果为1时,表示当前有进程正在wait,wakeup会唤醒等待的进程,并返回true 如果同时有多个进程处于wait状态,$n参数可以控制唤醒的进程数量 被唤醒的进程返回后,会将原子计数设置为0,这时可以再次调用wakeup唤醒其他正在wait的进程
string | $name | 原子计数对象名称 |
integer | $n |