【发布时间】:2022-05-10 09:20:07
【问题描述】:
这可能是在类似的情况下被问到的,但我在搜索大约 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(),然后等到它们都完成,我该怎么做?
我尝试使用像示例here 一样的线程:
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() 之前,我怎么知道他们都跑完了?
【问题讨论】:
标签: python multithreading