我有一个需要每秒执行一次的程序。但是我担心代码会稍微增加一点延迟,导致延迟时间略长于预期。示例代码:
while True:
print(time)
sleep(1)
在我的情况下,我将在这个循环中添加更复杂的函数调用,并担心它们会弄乱我的计时器。我是否应该担心,或者还有另一种方法让我确保这个功能每秒循环一次吗?
答案 0 :(得分:3)
您可以使用:
import threading
def scheduleFunc():
threading.Timer(1.0, scheduleFunc).start()
print(time)
或者使用它:
import sched, time
scheduled = sched.scheduler(time.time, time.sleep)
def scheduleFunc(sc):
print(time)
scheduled.enter(60, 1, scheduleFunc, (sc,))
scheduled.enter(60, 1, scheduleFunc, (scheduled,))
scheduled.run()