合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# Process::alarm [TOC] 高精度定时器,是操作系统`setitimer`系统调用的封装,可以设置微秒级别的定时器。定时器会触发信号,需要与`Process::signal`或`pcntl_signal`配合使用。 ~~~ function Process::alarm(int $interval_usec, int $type = ITIMER_REAL) : bool ~~~ * `$interval_usec`定时器间隔时间,单位为微秒。如果为负数表示清除定时器 * `$type`定时器类型 * `0`表示为真实时间,触发`SIGALAM`信号 * `1`表示用户态`CPU`时间,触发`SIGVTALAM`信号 * `2`表示用户态+内核态时间,触发`SIGPROF`信号 * 设置成功返回`true`,失败返回`false`,可以使用`swoole_errno`得到错误码 > `alarm`不能和`Timer`同时使用 > `alarm`在`1.8.13`或更高版本可用 ## 使用实例 ~~~ use Swoole\Process; Process::signal(SIGALRM, function () { static $i = 0; echo "#{$i}\talarm\n"; $i++; if ($i > 20) { Process::alarm(-1); } }); //100ms Process::alarm(100 * 1000); ~~~