GiL

파이썬

[파이썬] 멀티 쓰레드 정리

멀티 쓰레드를 사용한다고 싱글 쓰레드에 비해서 무조건 작업 속도가 빨라지지 않는다. 이유는 파이썬의 GIL(Global Interpreter Lock) 때문인데, 다른 블로그의 글을 인용하자면 CPython에서의 GIL은 Python 코드(bytecode)를 실행할 때에 여러 thread를 사용할 경우, 단 하나의 thread만이 Python object에 접근할 수 있도록 제한하는 mutex이다. 그리고 이 lock이 필요한 이유는 CPython이 메모리를 관리하는 방법이 thread-safeness하기 때문이다. 결국 같은 시간에 실행되는 쓰레드는 무조건 1개이며, 멀티 쓰레드는 GIL이 적용되지 않는 즉, CPU 동작이 아닌 I/O 동작이 많은 프로그램에 구현했을 때 가장 이상적이다. 그렇다면 왜 ..

IntegerString
'GiL' 태그의 글 목록