python
[python] GIL(Global Interpreter Lock)
hs_seo
2017. 11. 21. 17:46
<요약>
GIL은 한번에 하나의 스레드만 수행할 수 있게 인터프리터에 락(Lock)을 거는 것.
이로 인해 파이썬 인터프리터 구현의 편의성, 개발의 편의성이 생겼다.
GIL을 피하기 위해서 Multiprocessing 모듈을 이용하면 된다.
파이썬의 GIL은 한번에 하나의 스레드만 동작 할 수 있도록
파이썬 인터프리터에 락이 걸리는 것이다.
이로 인해서 스레드를 이용하여 프로그램을 구현하여 동시에 여러가지 작업을 진행하여도,
한번에 하나의 작업만 돌게 되어서 실제로는 작업시간이 더 늘어나는 결과를 가져온다.
이렇게 구현이 된이유는 다음과 같다.
- 공유자원에 대한 처리를 간단하게 하기 위해서
- GC를 만들기 편하기 때문에
- C/C++ 확장 모듈 개발의 편리성
다음의 두개의 자료를 읽어보면 더욱 확실하게 이해할 수 있을 것이다.
반응형