每秒运行python函数

发布于 2021-01-29 17:00:22

我想要的是能够每秒运行一个函数,而与该函数花费多长时间无关(它应该始终在一秒钟之内)。我考虑了很多选择,但不确定哪个是最好的。

如果我仅使用延迟功能,则不会考虑该功能运行的时间。

如果我对函数计时,然后从一秒钟中减去该函数,然后补足延迟中的其余部分,则不会考虑时间计算。

我尝试使用threading.timer(我不确定这是如何工作的来龙去脉),但它的确比1s慢。

这是我尝试测试threading.timer的代码:

def update(i):
    sys.stdout.write(str(i)+'\r')
    sys.stdout.flush()
    print i
    i += 1
    threading.Timer(1, update, [i]).start()

有没有办法与函数花费的时间长短无关?

关注者
0
被浏览
51
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这样就可以做到,其准确性不会随时间而变化。

    import time
    
    start_time = time.time()
    interval = 1
    for i in range(20):
        time.sleep(start_time + i*interval - time.time())
        f()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看