Multiprocessing 모듈로 1억 더하기

그리고 GIL,,, th레드,,,

(이어서,,,)

파이썬에서 뜨레드 여러 개를 이용하는 프로그램을 만들고, 동시에 일하는 것을 기대했지만,

실제로는 CPU를 점유 할 수 있는 뜨레드는 한 개! 실행 속도는 더 느려진다!

한 번에 하나만

Global Interpreter Lock

언어에서 자원을 보호하기 위해 (Lock) 정책을 사용. 파이썬에서는 하나의 프로세스 안에 모든 자원의 락(Lock)을 글로벌(Global)하게 관리함으로써 한 번에 하나의 쓰레드만 자원을 컨트롤 하여 동작 하도록 한다

앞선 1편에서의 코드(0부터 억-1까지 더하기 코드)에서

result라는 자원을 공유하는 두 개의 뜨레드를 동시에 실행시키지만,

결국 GIL 때문에 한 번에 하나의 뜨레드만 계산하여 실행시간이 비슷한 것

그럼 파이썬에서 병렬작업은 어떻게?