一尘不染

python的time.sleep()有多准确?

python

我可以给它加上浮点数,例如

time.sleep(0.5)

但是它有多精确?如果我给它

time.sleep(0.05)

它真的会睡约50毫秒吗?


阅读 2837

收藏
2020-02-18

共1个答案

一尘不染

time.sleep函数的准确性取决于你底层操作系统的睡眠准确性。对于非实时操作系统(如普通Windows),你可以睡眠的最小间隔约为10-13毫秒。在最小的10-13毫秒以上的时间里,我已经看到了几毫秒内的准确睡眠。

更新:就像在下面引用的文档中提到的那样,通常以循环方式进行睡眠,以确保在早起的情况下可以重新进入睡眠状态。

我还应该提到,如果你正在运行Ubuntu,则可以通过安装rt内核软件包(至少在Ubuntu 10.04 LTS中)来尝试伪实时内核(带有RT_PREEMPT补丁集)。

编辑:校正非实时Linux内核具有的最小睡眠间隔要比1ms再接近10ms,但是它以不确定性的方式变化。

2020-02-18