본문 바로가기

Python

[Python] GIL(Global Interpreter Lock)

GIL

  • 파이썬 인터프리터가 한 스레드만 하나의 바이트코드를 실행하는 것
  • 하나의 스레드에 모든 자원을 허용하고 나머지 스레드는 Lock을 검
  • 파이썬의 모든 객체는 reference count를 갖고 있는데 멀티스레드에서 여러 스레드가 하나의 객체를 사용한다면 reference count를 관리하기 위해 모든 객체에 Lock을 걸어야하며 비효율 적이기 때문에 GIL을 사용하게 되었음
  • 멀티스레드 회피를 위해 멀티프로세싱을 사용

 

 

'Python' 카테고리의 다른 글

[Python] 메모리 관리  (0) 2021.03.18
[Python]ABC(Abstract Base Class)  (0) 2021.03.11
[Python] django vs flask  (0) 2021.03.11
[Python] @staticmethod vs @classmethod  (0) 2021.03.04
[Python] is vs ==  (0) 2021.03.01