我正在考虑实现如下功能:
timeout = 60 second
timer = 0
while (timer not reach timeout):
do somthing
if another thing happened:
reset timer to 0
我的问题是如何实现计时器的东西?多个线程或特定的lib?
我希望解决方案基于python内置的lib而不是一些第三方的花哨包。
PS:一个线索应该没问题,你不需要给出整个解决方案。
答案 0 :(得分:1)
我认为你不需要为你所描述的内容提供线索。
import time
timeout = 60
timer = time.clock()
while timer + timeout < time.clock():
do somthing
if another thing happened:
timer = time.clock()
在这里,您检查每次迭代。
您需要线程的唯一原因是,如果您需要停止在迭代的中间,如果某些事情花费的时间太长。
答案 1 :(得分:0)
我使用以下习语:
from time import time, sleep
timeout = 10 # seconds
start_doing_stuff()
start = time()
while time() - start < timeout:
if done_doing_stuff():
break
print "Timeout not hit. Keep going."
sleep(1) # Don't thrash the processor
else:
print "Timeout elapsed."
# Handle errors, cleanup, etc