반응형
모든 하위 프로세스가 완료 될 때까지 프로세스를 기다리시겠습니까?
이 질문에 이미 답변이 있습니다.
두 개 이상의 하위 프로세스를 만드는 주 프로세스가 있습니다. 주 프로세스가 모든 하위 프로세스가 작업을 완료하고 종료 할 때까지 기다리기를 원합니까?
# main_script.py
p1 = subprocess.Popen(['python script1.py'])
p2 = subprocess.Popen(['python script2.py'])
...
#wait main process until both p1, p2 finish
...
Popen
객체는있다 .wait()
(종료 상태를 리 튜닝, 외에, 등) 주어진 서브 프로세스의 완료를 기다릴 : 정확히 정의 방법을.
이 방법을 사용하면 프로세스 좀비가 너무 오래 눕는 것을 방지 할 수 있습니다.
(또는 호출 및 대기를 위해 subprocess.call()
또는 subprocess.check_call()
을 사용할 수 있습니다 . 프로세스에 IO가 필요하지 않은 경우 충분할 수 있습니다. 그러나 두 하위 프로세스가 병렬로 실행되어야하는 경우에는 옵션이 아닐 수 있습니다. , 그들은 ( check_
) call()
.)
기다려야 할 하위 프로세스가 여러 개인 경우 다음을 수행 할 수 있습니다.
exit_codes = [p.wait() for p in p1, p2]
모든 하위 프로세스가 완료되는 즉시 반환됩니다. 그런 다음 평가할 수있는 리턴 코드 목록이 있습니다.
subprocess.call
자동으로 대기하며 다음을 사용할 수도 있습니다.
p1.wait()
참고 URL : https://stackoverflow.com/questions/15107714/wait-process-until-all-subprocess-finish
반응형
'developer tip' 카테고리의 다른 글
UITableview reloaddata with animation (0) | 2020.11.09 |
---|---|
double에서 소수 부분 가져 오기 (0) | 2020.11.09 |
모바일 크롬이 스크롤시 크기 조정 이벤트를 발생시킵니다. (0) | 2020.11.08 |
Pandas to_html ()은 문자열 내용을 자릅니다. (0) | 2020.11.08 |
MongoDB 데이터 디렉토리 / data / db를 찾을 수 없습니다. (0) | 2020.11.08 |