반응형 멀티스레딩1 파이썬 GIL 이란? 모 해외 시스템 반도체 회사에서 GIL이 뭔지 물어봤다길래 정리해본다. GIL(Global Interpreter Lock) 일단 이놈은 파이썬 버전 뮤텍스라고 생각하면 편하다. 허나 c/c++에서 알고있는 그 뮤텍스와 큰 차이가 있다. 파이썬의 멀티스레딩도 c/c++과 큰 차이가 있고. 결론부터 말하면 파이썬에서 스레드로 병렬 프로그래밍을 짜면 각각의 스레드가 c/c++처럼 한번에 여러작업을 수행하지 않는다. 이놈의 GIL 때문이다. 파이썬은 하나의 프로세스 안에 모든 자원을 Global하게 Lock 한다. 스레드는 프로세스 안에 자원을 공유하는데 모든 자원을 Global하게 Lock해버리면 한번에 하나의 스레드만 작업을 하게 된다. 아니 그럼 멀티스레딩이 의미 없잖아? 거의 맞는말이지만 I/O 작업을 .. 2021. 4. 17. 이전 1 다음 반응형