반응형
여러 작업을 병렬로 실행하고 모든 작업이 완료되면 계속하고 싶습니다. 나는 뭔가있어
# based on example code from https://pymotw.com/2/multiprocessing/basics.html
import multiprocessing
import random
import time
def worker(num):
"""A job that runs for a random amount of time between 5 and 10 seconds."""
time.sleep(random.randrange(5,11))
print('Worker:' + str(num) + ' finished')
return
if __name__ == '__main__':
jobs = []
for i in range(5):
p = multiprocessing.Process(target=worker, args=(i,))
jobs.append(p)
p.start()
# Iterate through the list of jobs and remove one that are finished, checking every second.
while len(jobs) > 0:
jobs = [job for job in jobs if job.is_alive()]
time.sleep(1)
print('*** All jobs finished ***')
작동하지만 모든 작업이 완료 될 때까지 반복해서 반복하는 것보다 모든 작업이 완료 될 때까지 기다리는 더 좋은 방법이있을 것입니다.
해결 방법
이건 어떤가요?
for job in jobs:
job.join()
참조 페이지 https://stackoverflow.com/questions/33933561
반응형
'파이썬' 카테고리의 다른 글
파이썬 Windows에서 Anaconda Python 2.7 x64에 Theano를 설치하는 방법은 무엇입니까? (0) | 2020.11.13 |
---|---|
파이썬 How do I track motion using OpenCV in Python? (0) | 2020.11.13 |
파이썬 Python에서 문자열 형식 지정에 여러 인수 사용 (예 : '% s ... % s') (0) | 2020.11.12 |
파이썬 : 소수점없이 숫자 얻기 (0) | 2020.11.12 |
파이썬 기본 시간대를 포함하여 isoformat datetime 문자열을 얻는 방법은 무엇입니까? (0) | 2020.11.12 |
댓글