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

Using sleep() to create a function that consistently loops every second

我有一个程序需要每秒执行一次。但是我担心代码会依次增加轻微的延迟,从而导致延迟比预期的稍长。示例代码:

while True:
    print(time)
    sleep(1)

在我的例子中,我将在此循环中添加更复杂的函数调用,并且担心它们会扰乱我的计时器。我是否应该担心,或者是否有其他方法可以确保此函数每秒循环一次?

你可以使用这个:

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