问题描述
time.sleep函数的准确性取决于你底层操作系统的睡眠准确性。对于非实时操作系统(如普通Windows),你可以睡眠的最小间隔约为10-13毫秒。在最小的10-13毫秒以上的时间里,我已经看到了几毫秒内的准确睡眠。
更新:就像在下面引用的文档中提到的那样,通常以循环方式进行睡眠,以确保在早起的情况下可以重新进入睡眠状态。
我还应该提到,如果你正在运行Ubuntu,则可以通过安装rt内核软件包(至少在Ubuntu 10.04 LTS中)来尝试伪实时内核(带有RT_PREEMPT补丁集)。
编辑:校正非实时Linux内核具有的最小睡眠间隔要比1ms再接近10ms,但是它以不确定性的方式变化。
解决方法
我可以给它加上浮点数,例如
time.sleep(0.5)
但是它有多精确?如果我给它
time.sleep(0.05)
它真的会睡约50毫秒吗?