답변:
가상 코어가 8 개인 CPU (하이 스레딩이있는 쿼드 코어)가 있다고 가정합니다. 이는 완전히로드 된 하나의 CPU 스레드 / 가상 코어가 총로드의 12.5 %임을 의미합니다.
Python 인터프리터는 기본적으로 하나의 단일 프로세스로만 실행되는 애플리케이션이므로 둘 이상의 가상 코어를 활용할 수 없습니다. 이 코드로 실행하는 코드가 멀티 스레딩을 사용하더라도 GIL (전역 인터프리터 잠금) 때문에 여전히 하나의 CPU 스레드 / 가상 코어 만 사용 합니다.
Python 프로그램이 멀티 프로세싱을 사용 하는 경우 (실제로 여러 개의 Python 인터프리터 인스턴스를 시작하고 작업을 병렬로 수행 할 수있는 경우) 여러 가상 코어 / CPU 스레드를 활용할 수 있습니다. (@SargeBorsch가 그의 의견에서 지적했듯이, 다중 처리없이 이것을 달성하는 몇 가지 고급 방법이 있지만 일반적으로 빠르게 작성하는 것은 아닙니다.)
Jython
또는 IronPython
GIL을 가지고 있지 않는.