Python:高精度time.sleep

时间:2009-07-31 10:25:43

标签: python

你能告诉我如何在Win32和Linux上的Python2.6中获得高精度的睡眠功能?

3 个答案:

答案 0 :(得分:60)

您可以在sleep()中使用浮点数:

  

参数可以是浮点数,表示更精确的睡眠时间。

所以

time.sleep(0.5)

会睡半秒钟。

然而,在实践中,你不可能通过睡眠获得超过毫秒的精度,因为操作系统通常只支持毫秒睡眠,并且因为很短的时间很快就会变得不可靠。

答案 1 :(得分:10)

这是一个类似的问题:

how-accurate-is-pythons-time-sleep

linux 上如果您需要高准确度,可能需要考虑使用ctypes来调用nanosleep()clock_nanosleep()。我不确定尝试这个的所有含义。

答案 2 :(得分:0)

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上这是非常好的精度