首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python: intervals at x:00重复

使用python: intervals at x:00重复
EN

Stack Overflow用户
提问于 2010-08-24 11:19:12
回答 2查看 808关注 0票数 1

如何将重复计时器安排为5分钟间隔。它在00秒时触发,然后在00秒重复。好吧,不是硬实时的,但尽可能接近sys的延迟。试图避免积聚在滞后和接近00。

Lang: Python,操作系统: WinXP x64

系统分辨率为25ms。

任何代码都会有帮助的,tia

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-24 11:31:59

我不知道如何做得比使用threading.Timer更准确。它是“一次性的”,但这只是意味着你以这种方式调度的函数必须立即重新调度自己,并在300秒后进行另一次调度。(您可以通过每次使用time.time测量准确的时间并相应地改变下一次调度延迟来提高准确性)。

票数 2
EN

Stack Overflow用户

发布于 2010-08-24 12:03:33

尝试比较这两个代码示例的时间打印输出:

代码示例1

代码语言:javascript
复制
import time
delay = 5

while True:
    now = time.time()
    print time.strftime("%H:%M:%S", time.localtime(now))

    # As you will observe, this will take about 2 seconds,
    # making the loop iterate every 5 + 2 seconds or so.
    ## repeat 5000 times
    for i in range(5000):
        sum(range(10000))

    # This will sleep for 5 more seconds
    time.sleep(delay)

代码示例2

代码语言:javascript
复制
import time
delay = 5

while True:
    now = time.time()
    print time.strftime("%H:%M:%S", time.localtime(now))

    # As you will observe, this will take about 2 seconds,
    # but the loop will iterate every 5 seconds because code 
    # execution time was accounted for.
    ## repeat 5000 times
    for i in range(5000):
        sum(range(10000))

    # This will sleep for as long as it takes to get to the
    # next 5-second mark
    time.sleep(delay - (time.time() - now))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3553340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档