我的功能需要很长时间才能完成。在执行长函数时,如何每隔X秒执行另一个函数?
该脚本使用的是Python 3.4
答案 0 :(得分:1)
这是一个非常简单的例子。如果在第一个函数完成时杀死第二个函数很重要,仍然可以调整它。
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()