使用sleep()创建一个始终循环每秒的函数

时间:2018-05-02 09:18:21

标签: python loops sleep

我有一个需要每秒执行一次的程序。但是我担心代码会稍微增加一点延迟,导致延迟时间略长于预期。示例代码:

while True:
    print(time)
    sleep(1)

在我的情况下,我将在这个循环中添加更复杂的函数调用,并担心它们会弄乱我的计时器。我是否应该担心,或者还有另一种方法让我确保这个功能每秒循环一次吗?

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()