我想运行两个独立的函数,它们以恒定的时间间隔循环,同时运行。
Function1需要每60秒循环一次。然后我想从Function1触发Function2的启动。然后,Function2每5秒循环一次。在某一点上,我想停止Function2。
最佳解决方案是什么?谢谢你的帮助。
答案 0 :(得分:1)
您可以使用multiprocessing.Process
轻松完成此操作:
>
如果要同步两个进程,可以使用Lock
:
from multiprocessing import Process
def function1():
# ... Initiate loop
child_process = Process(target=function2)
child_process.daemon = True # We want function2 to be terminated if function1 exits for some reason
child_process.start()
# ... Continue loop execution as normal
# ... After some time
child_process.terminate() # This will terminate function2
# ...
return
def function2():
# ... Loop and do stuff
return
function1()
使用这种方法,您可以保证打印语句永远不会并行执行,而是顺序执行
答案 1 :(得分:0)
您可以使用condition variable从一个线程向另一个线程发出信号。