最佳答案
这个问题可能在类似的情况下被问过,但是我在大约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()
?