使用 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()
我有一个程序需要每秒执行一次。但是我担心代码会依次增加轻微的延迟,从而导致延迟比预期的稍长。示例代码:
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()