重复启动一个函数,同时执行另一个函数

2024-09-29 01:30:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个需要很长时间才能完成的函数。在执行长函数时,如何每X秒执行一个函数?你知道吗

这个脚本使用的是python3.4


Tags: 函数脚本执行长
1条回答
网友
1楼 · 发布于 2024-09-29 01:30:25

这是一个非常简单的例子。如果在第一个函数完成时终止第二个函数对您很重要,那么仍然可以对其进行调优。你知道吗

import threading, time

def func_long(ev):
    # do stuff here
    for _ in range(12):
        print("Long func still working")
        time.sleep(1)

    # if complete
    ev.set()

def run_func(ev, nsec):
    if ev.is_set():
        return
    print ("Here run periodical stuff")
    threading.Timer(nsec, run_func, [ev, nsec]).start()

def main():
    ev = threading.Event()
    threading.Timer(5.0, run_func, [ev, 5]).start()
    func_long(ev)

if __name__=='__main__':
    main()

相关问题 更多 >