使用多重处理时是否有加入过程的顺序规则?

问题描述 投票:0回答:1

我有三个Python脚本文件(script1.py,script2.py和script3.py),我希望script1.py和script2.py同时运行,并且希望script3.py仅在script2.py完成时才能启动(script1。 py尚未在script3启动时完成)。

我有这样的代码可以解决,但是我不确定自己做的事情是否正确:

import subprocess
import multiprocessing

def func1(command):
    subprocess.run(command, shell=True)

def func2(command):
    subprocess.run(command, shell=True)

def func3(command):
    subprocess.run(command, shell=True)

if __name__ =='__main__':
    p1 = multiprocessing.Process(target=func1,args=('python3 script1.py',))
    p2 = multiprocessing.Process(target=func2,args=('python3 script2.py',))
    p3 = multiprocessing.Process(target=func3,args=('python3 script2.py',))

    p1.start()
    p2.start()
    p2.join()
    p3.start()
    p3.join()
    p1.join()

会起作用吗?有一个更好的方法吗?是否有规则,我必须按照启动时的顺序加入它们?

谢谢,巴尔纳

python multiprocessing subprocess
1个回答
0
投票

是的,它将起作用。

此外,您可以对所有三个进程使用相同的功能,因为它们是相同的。

© www.soinside.com 2019 - 2024. All rights reserved.