我怎么能睡不到0.001s / 1ms?
如果我使用它,它会告诉我它只睡了 1 毫秒。可以少睡吗?
$ time sleep 0.0000000001
sleep 0.0000000001 0,00s user 0,00s system 77% cpu 0,001 total
我怎么能睡不到0.001s / 1ms?
如果我使用它,它会告诉我它只睡了 1 毫秒。可以少睡吗?
$ time sleep 0.0000000001
sleep 0.0000000001 0,00s user 0,00s system 77% cpu 0,001 total
sleep
通常使用nanosleep(2)
系统调用。但是,尽管此系统调用具有高精度参数,但实际精度将取决于 Linux 使用的计时器。通常,Linux 内核是使用该
CONFIG_HZ=250
选项编译的。(见/boot/config-...
)。扩展
CONFIG_HIGH_RES_TIMERS
可以提高准确性。请参阅https://elinux.org/High_Resolution_Timers那里有一个忙碌等待的旧行为,但现在的内核中没有:
另请注意,分叉进程和加载
sleep
程序需要一些时间。在我的系统上,我有: