파이썬은 왜 느릴까?

Leejaegun·2025년 3월 29일

Python & etc

목록 보기
17/27

🧵 파이썬 전역 인터프리터 락 (GIL) 요약

🔒 GIL이란?

  • GIL (Global Interpreter Lock):
    CPython에서 한 번에 하나의 스레드만 Python 객체에 접근할 수 있도록 제한하는 락.

🧠 왜 만들었나?

  • 초기 CPython 개발 당시(1994년), 멀티코어 환경이 일반적이지 않았고,
    메모리 관리와 동시성 처리의 편의성 때문에 GIL 도입.

📉 단점

  • 현대 멀티코어 CPU 환경에서는 병렬 처리 성능 저하 발생
    → 스레드가 동시에 실행되지 못하고 GIL을 차례로 획득/릴리스하며 돌아가야 함.

🧪 그림 설명

  • 각 스레드가 실행 중간에 I/O 작업 시 GIL을 릴리스하고,
    다른 스레드가 GIL을 획득해서 실행하는 구조.
    • 한 스레드가 작업을 끝내야 다른 스레드가 실행 가능

🧰 최근 변화

  • PriorityQueue 같은 라이브러리는 GIL의 제약을 덜 받도록 설계됨.
  • 하지만 GIL에 의존한 기능이 너무 많아 완전히 제거하기 어려움.

💬 요약 한 줄:
GIL은 파이썬(CPython)에서 하나의 스레드만 Python 객체에 접근할 수 있게 제한하는 장치로, 멀티코어 환경에서 성능 저하를 일으키는 주요 원인 중 하나이다.

profile
Lee_AA

0개의 댓글