Ограничение относится к CPython с включённым GIL: в одном интерпретаторе Python-код выполняет один поток за раз. Free-threaded сборки и процессы меняют эту картину.
Почему Python не может использовать больше одного ядра для выполнения Python-кода потоками?
Ограничение относится к 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.