<요약>
GIL은 한번에 하나의 스레드만 수행할 수 있게 인터프리터에 락(Lock)을 거는 것.
이로 인해 파이썬 인터프리터 구현의 편의성, 개발의 편의성이 생겼다.
GIL을 피하기 위해서 Multiprocessing 모듈을 이용하면 된다.
파이썬의 GIL은 한번에 하나의 스레드만 동작 할 수 있도록
파이썬 인터프리터에 락이 걸리는 것이다.
이로 인해서 스레드를 이용하여 프로그램을 구현하여 동시에 여러가지 작업을 진행하여도,
한번에 하나의 작업만 돌게 되어서 실제로는 작업시간이 더 늘어나는 결과를 가져온다.
이렇게 구현이 된이유는 다음과 같다.
- 공유자원에 대한 처리를 간단하게 하기 위해서
- GC를 만들기 편하기 때문에
- C/C++ 확장 모듈 개발의 편리성
다음의 두개의 자료를 읽어보면 더욱 확실하게 이해할 수 있을 것이다.
반응형
'python' 카테고리의 다른 글
[python] [bs4] BeautifulSoup([your markup]) 경고 수정하기 (0) | 2017.12.10 |
---|---|
[python] multiprocessing 을 이용한 스레드 처리 (0) | 2017.12.07 |
[python] 문자열을 효율적으로 concat 하는 방법 (0) | 2017.02.22 |
[python] range, xrange 함수 사용법 (0) | 2017.02.22 |
[python][error] 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UX 오류 수정 (0) | 2017.01.23 |