Programming/python

python 멀티 프로세스와 멀티 스레드

RosyPark 2019. 10. 5. 16:00

1. 멀티 프로레스와 멀티 스레드

- 프로세스(process) : 운영 체제에서 실행되는 각 프로그램은 각각이 벼도의 프로세스

- 각 프로세스에는 하나 이상의 스레드(thread)가 있음

- 한 프로세스에 여러개의 스레드가 있으면 여러 작업을 마치 동시에 수행하는것처럼 보임.

- 멀티 프로레스와 멀티 스레드 두가지 방법 사용시 프로그램의 작업 부하를 줄일 수 있음. 

 

 

* 멀티 프로세스

- 별도의 메모리 영역을 가지며, 특별한 메커니즘으로만 통신할 수 있음

- 프로세서는 각 스레드에 대해 별도의 레지스터 집합을 불러오거나 저장하는데, 프로세스 간 데이터 공유와 통신용으로는 비효율적

- subprocess 모듈 사용

 

* 멀티 스레드 

- 단일 프로세스 내의 멀티 스레드는 동일한 메모리에 접근

- 스레드는 데이터 공유를 통해 간단하게 통신하는데, threading 모듈의 처리를 통해 한번에 한 스레드만 메모리 영역에 접근 가능

- 각 프로세스가 독립적인 스택, 힙, 코드, 데이터 영역을 가지는 반면, 한 프로세스에 속한 스레드는 스택 영역을 제외한 메모리 영역을 공유