본문 바로가기
python

8. python, 파이썬에서의 병렬처리(subprocess)

by 장인이 2021. 1. 13.

  병렬처리를 하는 것은 곧 프로그램 속도 향상의 지름길을 뜻합니다. 그 이유는 여러 작업을 동시에 하도록 만들어 주므로, 같은 시간 안에 더 많은 결과물을 얻어낼 수 있습니다.

 

  파이썬에서 병렬처리를 하기 위해서는 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

댓글