[Python3] GIL (Global Interpreter Lock)
2022. 5. 15. 17:21
Python3
GIL 이란? Global Interpreter Lock의 약자로 전역 인터프리터 락이다. 여러 개의 쓰레드가 파이썬 코드를 동시에 실행하지 못하도록 하는 것이다. 한 프로세스 내에서, Python 인터프리터는 한 시점에 하나의 쓰레드에 의해서만 실행될 수 있다. 멀티 쓰레딩이 불가능하다는 것이 아니다. 원래 멀티 코어라면 멀티 쓰레딩 시에 여러 개의 쓰레드가 여러 코어 상에서 병렬(Parallel) 실행될 수 있는데, Python에서는 그러한 병렬 실행이 불가능하다. GIL이 있는 이유 파이썬에서 모든 것은 객체이고 이것들은 Reference Count가 관리가 된다. Reference Count가 0이 되면 Garbage collector가 객체를 메모리 해제시킨다. 그러나 여러개의 쓰레드가 동시에 ..