티스토리 뷰

python

[python] GIL(Global Interpreter Lock)

hs_seo 2017. 11. 21. 17:46

<요약>

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

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

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


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

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


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

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


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

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


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






반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함