Python:高精度 time.sleep

47 投票
3 回答
98530 浏览
提问于 2025-04-15 13:18

你能告诉我怎么在Python2.6的Win32和Linux上实现一个高精度的睡眠函数吗?

3 个回答

1
def start(self):
    sec_arg = 10.0
    cptr = 0
    time_start = time.time()
    time_init = time.time()
    while True:
        cptr += 1
        time_start = time.time()
        time.sleep(((time_init + (sec_arg * cptr)) - time_start ))

        # AND YOUR CODE .......
        t00 = threading.Thread(name='thread_request', target=self.send_request, args=([]))
        t00.start()

在Linux上,这个精度非常好。

14

这里有一个类似的问题:

python的time.sleep到底有多准确

linux系统上,如果你需要非常精确的时间控制,可能可以考虑使用ctypes来调用nanosleep()或者clock_nanosleep()。不过,我不太确定这样做会有什么具体的影响。

75

你可以在sleep()这个函数里使用浮点数:

这个参数可以是一个浮点数,用来表示更精确的睡眠时间。

所以

time.sleep(0.5)

会让程序暂停半秒钟。

不过实际上,使用这个函数时,你很难达到比毫秒更精确的暂停时间,因为大多数操作系统通常只支持毫秒级的暂停,而且很短的时间段会变得不太可靠。

撰写回答