본문 바로가기
python

[python] GIL(Global Interpreter Lock)

by hs_seo 2017. 11. 21.

<요약>

GIL은 한번에 하나의 스레드만 수행할 수 있게 인터프리터에 락(Lock)을 거는 것.

이로 인해 파이썬 인터프리터 구현의 편의성, 개발의 편의성이 생겼다. 

GIL을 피하기 위해서 Multiprocessing 모듈을 이용하면 된다. 


파이썬의 GIL은 한번에 하나의 스레드만 동작 할 수 있도록 

파이썬 인터프리터에 락이 걸리는 것이다. 


이로 인해서 스레드를 이용하여 프로그램을 구현하여 동시에 여러가지 작업을 진행하여도,

한번에 하나의 작업만 돌게 되어서 실제로는 작업시간이 더 늘어나는 결과를 가져온다. 


이렇게 구현이 된이유는 다음과 같다. 

  • 공유자원에 대한 처리를 간단하게 하기 위해서
  • GC를 만들기 편하기 때문에 
  • C/C++ 확장 모듈 개발의 편리성


다음의 두개의 자료를 읽어보면 더욱 확실하게 이해할 수 있을 것이다. 






반응형