睡眠函数
最新的4.2.0
版本增加了对sleep
函数的Hook
,底层替换了sleep
、usleep
、time_nanosleep
、time_sleep_until
四个函数。
当调用这些睡眠函数时会自动切换为协程定时器调度。不会阻塞进程。
实例
Swoole\Runtime::enableCoroutine(true);
go(function () {
sleep(1);
echo "sleep 1s\n";
usleep(1000);
echo "sleep 1ms\n";
});
例外
由于底层的定时器最小粒度是1ms
,因此使用usleep
等高精度睡眠函数时,如果设置为低于1ms
时,将直接使用sleep
系统调用。可能会引起非常短暂的睡眠阻塞。