我有一个每秒触发并更新一个时钟的螺纹定时器,问题是有时时钟看起来不稳定,它可以跳2秒而不是稳定的1秒增量。
问题当然是初始(或后续)定时器不会在0:000秒时触发,因此时钟更新可能会出现抖动。
有没有办法阻止这种情况?
from threading import Timer
def timer():
Timer(1.00, timer).start()
STAT['ftime'] = time.strftime("%H:%M:%S")
答案 0 :(得分:0)
start_time = time.time()
interval = 1
for i in range(20):
time.sleep(start_time + i*interval - time.time())
# do a thing
将'20'替换为您想要的时间。
答案 1 :(得分:0)
有多种方法如何安排,有些设计甚至可能提供措施,以便能够在计划的调度时间线上为阻塞/失败启动提供一些可接受的补救措施 - 可能有助于更精细的时间/分层定时/外部同步/异步操作。
如果没有更多细节,“推荐”的做法会很糟糕,但有人可能会受到影响:
.Timer()
模型每50毫秒启动一次,嵌入式逻辑决定,如果它是正确时间(在理想化的一秒边缘不超过一个调度间隔的一半的情况下,并且在RTC不“接近”计划的理想化的情况下执行旨在运行的实际工作,或仅执行threading.Timer()
安排时间。return
-lock问题的问题,避免使用blockingIO(s),为CPU绑定的部分实现合理的任务分段代码