python定时执行代码

时间:2011-01-15 19:12:10

标签: python timed-events

我希望每次执行时都在同一时间执行一段代码,就像播放媒体文件一样......(每次执行的代码完全相同)

这在python中是否可行?

3 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

def run_with_delay(funcs, interval):
    for f in funcs[:-1]:
        before = time()
        f()
        # compensate the interval with the execution time.
        # NB: careful for functions that have a greater
        #     execution time than interval
        after = time()
        if after - before < interval:
            sleep(interval - (after - before))
    # last function is taken separately because we don't need
    # an extra useless sleep
    funcs[-1]()

答案 1 :(得分:1)

我不认为这可以通过语言结构(任何语言)来保证 - 您必须使用实时操作系统。我相信多媒体应用程序利用设备级缓冲来补偿OS进程调度程序中的时序抖动。

答案 2 :(得分:0)

我认为在交错指令以模拟多个线程的同时执行的操作系统中,这是不可能的。

您需要一个实时库或语言才能规定代码的截止日期,即使在规定的时间内也无法保证执行。