프로세서: 실행중인 프로그램
스레드: 프로세스 내에서 실제로 작업하는 주체
코어가 하나 이상이고 스레드도 하나 이상일 때, 각각의 코어에서 스레드는 실행될 수 있음. 그래서 동시에 작업을 하는 것이 가능함.
만약에 코어가 하나밖에 없다면 스레드들을 짧은 시간동안 번갈아 가면서 처리해서 병렬 효과를 볼 수 있음. 예를 들어 각 스레드를 0.1초씩 처리하면 여러 작업이 동시에 실행되는 효과가 있는 것.
그런데 파이썬은 인터프리터에 스레드 하나만 접근할 수 있게 제한함.
가령 코어가 2개, 스레드가 2개, 처리해야하는 작업1, 2가 있다고 하자. 일반적으로 각각의 코어에서 작업을 하나씩 맡아 동시에 처리할 수 있음.
그러나 파이썬은 인터프리터에 접근 할 수 있는 스레드는 하나로 제한하기 때문에(GIL) 운영체제가 작업을 코어 두개에 맡겨도 작업이 번갈아 가면서 진행됨. 듀얼 코어라도 싱글 코어 처럼 작동하게 되는 것.
'Django' 카테고리의 다른 글
MVT (0) | 2023.09.27 |
---|---|
네이버 Object Storage에 객체 업로드 하는 두 가지 방법 (0) | 2023.09.19 |
Django custom management command (0) | 2023.09.15 |
Requested setting LOGGING_CONFIG, but settings are not configured. (0) | 2023.09.13 |
RuntimeWarning: DateTimeField received a naive datetime (0) | 2023.09.13 |