[python] Global Interpreter Lock (GIL)

Shadis·2026년 2월 21일

python

목록 보기
11/13

Global Interpreter Lock

Global Interpreter Lock(GIL)은 하나의 process에서 여러 thread를 사용하고 CPU가 multi-core를 지원해도 병렬 계산을 하지 못하고 한번에 한 thread 연산만 가능하도록 python interpreter 자체에서 막아버리는 python의 특징이다. 이 특징 때문에 python이 single thread 기반 언어라는 이야기가 나오는 것이다.

그렇다면 python은 왜 GIL이라는 제약을 만든 것일까? python은 객체지향 언어로 각 객체의 reference count를 기반으로 해당 객체를 메모리에서 해제할지 결정한다. 만약 thread 병렬 계산이 가능하면 각 객체의 reference count를 관리하는 과정에서 race condition 때문에 문제가 발생할 수 있다. 이를 방지하려면 각 작업마다 mutex를 거는 등 추가적인 작업이 필요한데 Simple is the Best라는 phthon의 철학 때문에 이런 복잡한 작업보다 multi thread 병렬 계산을 막는 방식을 선택했다고 한다.

profile
HGU 20 김민석

0개의 댓글