Python
[ Python : 동시성과 병렬성 문법 배우기 ] 2. Parallelism with Multiprocessing
noahkim_
2021. 8. 1. 16:38
1. Process vs Thread, Parallelism
Parallelism : 완전히 동일한 시점에 태스크를 실행함. 다양한 파트로 나누어서 실행. (합 나누어서 구하고 취합하기)
하나의 코어가 아님. 멀티 프로세싱을 사용함
- 동시성
1개의 싱글코어에서 멀티쓰레드. 번갈아가며 처리. 컨텍스트 스위칭이 빠름 - 병렬성
멀티코어에서 각자의 일 끝내고 합침.
2. Join, is_alive
'multiprocess.Process' 모듈 사용
프로세스를 생성할 수 있음.
start() : 실행
terminate() : 종료시키기
join() : 자식프로세스 끝나기 전까지 기다린 후 종료하기
is_alive() : 프로세스 상태 출력
3. Naming, Parallel Processing
생성자의 첫번째 필드에 지정해둠
4. Queue, pipe
Queue : 부모프로세스에서 생성 후 자식프로세스에 전달하여 공유됨. put(), get() 함수로 전달 및 데이터 접근
Pipe : 1대1 (부모-자식)통신
5. Sharing state
프로세스 메모리 공유 X. 독립적임
multiprocessing.Value 사용
Value(타입, 값) : 공유변수 생성