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(타입, 값) : 공유변수 생성