Home » GIL

GIL

GIL

GIL CPython은 Global Interpreter Lock, 즉 GIL이라는 것을 사용한다. GIL은 일종의 뮤텍스로 복수의 네이티브 파이썬 스레드가 동시에 바이트코드를 실행하지 못하도록 하는 것이다. CPython의 메모리 관리 방식은 스레드-안전하지 못하기 때문에 이러한 방식의 락이 필요하다. 반대로 GIL을 도입하면서부터 다른 기능들은 GIL이 강제하는 부수효과에 의존하기 시작하기도 한다. GIL은 양면성을 가지는데, 멀티스레드로 디자인된 CPython 프로그램이 멀티프로세서 시스템의 장점을 제대로 살리지 못하게 한다는 약점을 가지고 있다. (덕분에 파이썬 커뮤니티는 GIL을 강제하는 것 때문에 까이고 있다.) 하지만 다행히다 I/O나 이미지처리, NumPy등을 사용하는 고도의 수학계산과 같은 부분들은… 더 보기 »GIL