병렬처리를 하는 것은 곧 프로그램 속도 향상의 지름길을 뜻합니다. 그 이유는 여러 작업을 동시에 하도록 만들어 주므로, 같은 시간 안에 더 많은 결과물을 얻어낼 수 있습니다.
파이썬에서 병렬처리를 하기 위해서는 subprocess를 이용하면 됩니다. 이는 어떤 프로그램을 실행시킬 때, 내가 사용하고 있는 파이썬 프로그램 아래에서 또다른 프로세스를 실행시키는 것입니다.
ex)
import subprocess
proc = subprocess.Popen(['echo', 'Hello from child'],
stdout=subprocess.PIPE,
shell=True) # 윈도우 환경이라면 작성
out, err = proc.communicate()
print(out.decode('utf-8'))
3줄: echo는 터미널에서 마치 파이썬의 print와 비슷한 역할을 하는 것을 말합니다.
4줄: stdout(표준 입출력)에 pipe를 활용했습니다.
pipe - 서브프로세스의 결과를 받아올 수 있도록 하는 것을 말함
6줄: out에 우리가 출력할 값이 들어가고, err에 에러값이 들어감, 모두 바이트로 들어간다는 것이 특징입니다.
7줄: utf-8로 디코딩 시켜서 출력합니다.
이렇게 만든 자식 프로세스는 파이썬 인터프리터와는 독립적으로 실행이 됩니다.
여기서 파이썬의 장점!
병렬처리를 직관적으로 잘 표현 할 수 있습니다(c에서는 복잡하게 사용해야 함)
c보다는 느릴수 있지만, 그래도 빠르게 처리할 수 있습니다.
'python' 카테고리의 다른 글
10. Extra Data Structure - 1, defaultdict, counter (0) | 2021.01.13 |
---|---|
9. python, 스레드(thread) (0) | 2021.01.13 |
7. python, 추상 클래스 (0) | 2021.01.13 |
6. python, magic method (0) | 2021.01.13 |
5. python, @method (0) | 2021.01.13 |
댓글