티스토리 뷰
1. 멀티 프로레스와 멀티 스레드
- 프로세스(process) : 운영 체제에서 실행되는 각 프로그램은 각각이 벼도의 프로세스
- 각 프로세스에는 하나 이상의 스레드(thread)가 있음
- 한 프로세스에 여러개의 스레드가 있으면 여러 작업을 마치 동시에 수행하는것처럼 보임.
- 멀티 프로레스와 멀티 스레드 두가지 방법 사용시 프로그램의 작업 부하를 줄일 수 있음.
* 멀티 프로세스
- 별도의 메모리 영역을 가지며, 특별한 메커니즘으로만 통신할 수 있음
- 프로세서는 각 스레드에 대해 별도의 레지스터 집합을 불러오거나 저장하는데, 프로세스 간 데이터 공유와 통신용으로는 비효율적
- subprocess 모듈 사용
* 멀티 스레드
- 단일 프로세스 내의 멀티 스레드는 동일한 메모리에 접근
- 스레드는 데이터 공유를 통해 간단하게 통신하는데, threading 모듈의 처리를 통해 한번에 한 스레드만 메모리 영역에 접근 가능
- 각 프로세스가 독립적인 스택, 힙, 코드, 데이터 영역을 가지는 반면, 한 프로세스에 속한 스레드는 스택 영역을 제외한 메모리 영역을 공유
'Programming > python' 카테고리의 다른 글
python - pandas [3] groupby (0) | 2019.10.07 |
---|---|
python from itertools import product (0) | 2019.10.07 |
python hashlib (0) | 2019.10.04 |
python partial 함수와 lambda 함수 (0) | 2019.10.04 |
python numpy reshape 정리 (0) | 2019.10.03 |
댓글