可能是在类似的情况下提出的,但是经过大约20分钟的搜索,我无法找到答案,所以我会提出。
我写了一个Python脚本(让我们说:scriptA.py)和一个脚本(让我们说scriptB.py)。
在scriptB中,我想使用不同的参数多次调用scriptA,每次运行大约需要一个小时(它是一个巨大的脚本,做了很多事情。。不用担心),并且我希望能够运行scriptA同时具有所有不同的参数,但是我需要等到所有参数都完成后才能继续;我的代码:
import subprocess
#setup
do_setup()
#run scriptA
subprocess.call(scriptA + argumentsA)
subprocess.call(scriptA + argumentsB)
subprocess.call(scriptA + argumentsC)
#finish
do_finish()
我想同时运行所有程序subprocess.call()
,然后等到它们全部完成后,该怎么办?
我试图像这里的例子一样使用线程:
from threading import Thread
import subprocess
def call_script(args)
subprocess.call(args)
#run scriptA
t1 = Thread(target=call_script, args=(scriptA + argumentsA))
t2 = Thread(target=call_script, args=(scriptA + argumentsB))
t3 = Thread(target=call_script, args=(scriptA + argumentsC))
t1.start()
t2.start()
t3.start()
但是我认为这是不对的。
我怎么知道他们都已经跑完了才去我家do_finish()
?