何时使用 time_nanosleep?

pro*_*oth 6 php

刚刚偶然发现time_nanosleep()并开始想知道,你什么时候想要使用它?

此外,是否有可能在像 PHP 这样的脚本语言中使用如此短的时间跨度?

Emi*_*röm 5

不,永远不可能使用单个纳秒。只有 Linux 中的上下文切换通常需要数百纳秒,不包括 Zend 引擎的开销。

我检查了 PHP 源代码,它只是 C nanosleep 函数的一个简单包装器。nanosleep 的手册页说:

nanosleep() 挂起调用线程的执行,直到至少在 *req 中指定的时间已经过去

...

与 sleep(3) 和 usleep(3) 相比,nanosleep() 具有以下优点: 它为指定睡眠间隔提供了更高的分辨率

所以这完全取决于您想要指定的间隔有多小。由于 usleep 是以微秒(千纳秒)为单位指定的,它的基本单位对于一些非常小的睡眠间隔来说可能太大了。