GIL(Global Interpreter Lock, 전역 인터프리터 락)은 CPython(표준 Python 구현)의 뮤텍스로, 한 번에 하나의 스레드만 Python 바이트코드를 실행하게 허용합니다. 이는 Python 스레드가 여러 CPU 코어에서 진정으로 병렬로 Python 코드를 실행할 수 없음을 의미합니다 — 동시성의 주요 고려 사항입니다.
GIL이 실제로 의미하는 것
멀티코어 CPU에서 여러 스레드가 있더라도:
어느 순간에든 오직 하나의 스레드만 Python 바이트코드를 실행함.
→ CPython에서 스레딩은 CPU 바운드 병렬성을 제공하지 않음.
핵심 구분: CPU 바운드 vs I/O 바운드
threading
():
(i * i i ())
():
response = requests.get(url)
