Из-за GIL потоки в CPython не выполняют байт-код Python параллельно для кода, привязанного к ЦП. Они переключаются сообща.
Подразумеваемое:
- для потоков, связанных с вводом-выводом, эффект хорош, поскольку время ожидания ввода-вывода перекрывается;
- для задач, связанных с процессором, прирост производительности от потоков обычно ограничен.
Суммируя:
- GIL ограничивает параллелизм потоков в сценариях, связанных с процессором.
- Потоки остаются полезными для сетевого и дискового ввода-вывода.
- Для работы ЦП используйте процессы или собственные вычисления.
Итог
Из-за GIL потоки в CPython не выполняют байт-код Python параллельно для кода, привязанного к ЦП.