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(타입, 값) : 공유변수 생성
'Python' 카테고리의 다른 글
[ Python : 동시성과 병렬성 문법 배우기 ] 3. Concurrency CPU Bound, I/O Bound (0) | 2021.08.01 |
---|---|
[ Python : 동시성과 병렬성 문법 배우기 ] 1. Multithreading (0) | 2021.08.01 |
[Python 고급] 2. Meta class (0) | 2021.08.01 |
[Python 고급] 1. variable scope, context Manager (0) | 2021.07.31 |
[Python 중급] 2. 파이썬 병행성 (0) | 2021.07.31 |