Python:高精度 time.sleep
你能告诉我怎么在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
这里有一个类似的问题:
在linux系统上,如果你需要非常精确的时间控制,可能可以考虑使用ctypes来调用nanosleep()或者clock_nanosleep()。不过,我不太确定这样做会有什么具体的影响。
75
你可以在sleep()
这个函数里使用浮点数:
这个参数可以是一个浮点数,用来表示更精确的睡眠时间。
所以
time.sleep(0.5)
会让程序暂停半秒钟。
不过实际上,使用这个函数时,你很难达到比毫秒更精确的暂停时间,因为大多数操作系统通常只支持毫秒级的暂停,而且很短的时间段会变得不太可靠。