운영체제

운영체제 파이썬의 gil과 멀티쓰레딩

PudgeKim 2020. 12. 12. 13:02

파이썬은 gil이라는 특성 때문에 한번에 쓰레드 하나밖에 사용하지 못한다.

이는 파이썬이 느린 이유중에 하나이기도 하다.

근데 분명 파이썬에도 멀티쓰레딩을 위한 기본 모듈들이 있다. 여기서 의문이 들어서 찾아보았다.

 

내가 이해한 바로는 I/O작업 즉, 파일 읽기, 쓰기 등의 작업을 할 때는 파이썬이 gil을 풀어주기 때문에 I/O 작업을 할 때는 멀티쓰레딩이 가능해진다.

컴퓨터 구조상 I/O작업의 속도는 메모리 접근이나 레지스터 접근에 비해서 엄청나게 느리다. 그래서 I/O작업에서만 멀티쓰레딩이 가능해도 많은 성능이 개선될 수 있다.