猿问

在python中准确睡眠()不到一秒钟

如何在 python 中准确地暂停一段时间。

我试过了:

import time
time.sleep(amount)

(数量 = 小于 1 秒的时间长度)

但是这不是很准确,还有什么更好的吗?

(Windows 10 64 位)


慕妹3242003
浏览 364回答 2
2回答

慕尼黑的夜晚无繁华

sleep 永远不会比操作系统的滴答率更准确,对于 Windows,它在 10ms-16ms 范围内的某个地方,在 linux 中它可以低至 1ms,具体取决于操作系统,但通常它会像 windows 一样更高如果您想要更高精度的睡眠,并且您使用的是 linux,则可以考虑使用nanosleep()which 是高精度睡眠函数,不幸的是,python 在任何内置库中都没有公开该函数-因此您需要创建一个小的 .so 文件将它暴露给 python(通过使用 ctypes 按原样导入它或通过使用 cpython 制作 C python 模块)根据文档,此函数将与计时器本身一样精确也有适用于 Windows 的高精度解决方案 - 但我从来没有使用过它们中的任何一个,所以我没有资格推荐在 Windows 上使用什么(但你再次需要一个将这些方法暴露给 python 的 .dll)综上所述,如果您不关心电源使用情况,您可以忙着睡觉:import timedef busy_sleep(seconds_to_sleep):&nbsp; &nbsp; start = time.time()&nbsp; &nbsp; while (time.time() < start + seconds_to_sleep):&nbsp; &nbsp; &nbsp; &nbsp; pass那么你可以这样称呼它busy_sleep(0.005),它会“睡眠”几乎正好是 0.005 秒“睡眠”是在空气引号中,因为你并没有真正睡着,你一直让 CPU 一直忙于 100% 但如果什么对你很重要是以精确的方式延迟执行它仍然可以为您工作

慕哥9229398

你试过这个吗?如果我使用 time.sleep(1) 它会等待一秒钟。所以,time.sleep(0.33333333333)&nbsp;# a third of a second pause.#time.sleep(0.5)# a half of a second pause.#等等。如果这没有以您想要的方式提出您的问题,我很抱歉!
随时随地看视频慕课网APP

相关分类

Python
我要回答