인터프리터 락(GIL)

이연희·2022년 2월 23일
0

파이썬 인터프리터 락(Global interpreter Lock, GIL)

파이썬이 느린 이유

🔹 파이썬 최초의 공식 구현체 CPython은 개발 초기 동시성 관리를 편리하게 하고 스레드 세이츠하지 않은 CPython의 메모리 관리를 쉽게 하기 위해 GIL로 파이썬 객체에 대한 접근을 제한하는 형태로 설계했다.
🔹 GIL은 전역 인터프리터 락으로서, 하나의 스레드가 자원을 독점하는 형태로 실행된다.
🔹 CPU가 하나이던 당시에는 아무런 문제가 없었지만, 멀티 코어 세상에선 이런 제약은 치명적이다.
🔹 최근 PriorityQueue 모듈을 비롯해 한계 극복을 위한 다양한 시도가 있지만 GIL로 의존하는 형태로 구현된 기능이 대부분이기 때문에 이런 제약을 극복하기 쉽지 않다.
🔹 지금까지도 GIL은 파이썬의 주요 특징으로 남아 있다.

profile
공부기록

0개의 댓글