비슷한 맥락에서 물었을지 모르지만 약 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()
있습니까?