Почему Python не может использовать больше одного ядра для выполнения Python-кода потоками?

Ограничение относится к CPython с включённым GIL: в одном интерпретаторе Python-код выполняет один поток за раз. Free-threaded сборки и процессы меняют эту картину.

Короткий ответ

Что ответить на собеседовании

Ограничение относится к CPython с включённым GIL: в одном интерпретаторе Python-код выполняет один поток за раз. Free-threaded сборки и процессы меняют эту картину.

Подробный разбор

Ответ с пояснениями

Ограничение относится к CPython с включённым GIL: в одном интерпретаторе Python-код выполняет один поток за раз. Free-threaded сборки и процессы меняют эту картину.

Поэтому исходное утверждение слишком общее. В обычной GIL-сборке потоки полезны для ожидания I/O, а тяжёлые вычисления на Python часто выносят в процессы. Некоторые нативные библиотеки освобождают GIL и считают параллельно. С Python 3.13 существуют free-threaded сборки, где возможен параллельный Python-код, но совместимость расширений и синхронизация общих данных требуют внимания. Проверять нужно фактическую сборку и режим, а не только номер версии. См. документацию Python.

Источник: docs.python.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее