Python 的 time.sleep() 函数是暂停程序执行的有用工具。但是,其准确性存在问题,尤其是在使用浮点数时。
time.sleep() 的精度取决于底层操作系统(操作系统)。非实时操作系统,例如 Windows,最小睡眠间隔约为 10-13 毫秒。
这是什么意思?如果您尝试睡眠 50 毫秒(0.05 秒),time.sleep() 可能只会从最小间隔(10-13 毫秒)暂停大约 50 毫秒。
为了提高准确性,建议围绕 time.sleep() 实现循环。如果函数在预定时间之前唤醒,它将在剩余的时间内返回睡眠状态。
如果您需要更精确的睡眠间隔,请考虑使用伪实数-time 内核,例如 Ubuntu 的 rt 内核(RT_PREEMPT 补丁集)。这可以将最小睡眠间隔减少到 1 毫秒左右。
非实时 Linux 内核的最小睡眠间隔接近 1 毫秒,但它可以在非实时情况下变化。 -确定性方式。
这是一个使用循环来确保准确性的示例:
import time target_sleep_time = 0.05 # 50 milliseconds start_time = time.time() while True: elapsed_time = time.time() - start_time if elapsed_time >= target_sleep_time: break time.sleep(target_sleep_time - elapsed_time)
以上是Python 的 time.sleep() 函数有多准确,如何提高其精度?的详细内容。更多信息请关注PHP中文网其他相关文章!