Если есть тяжёлые CPU-операции (математические вычисления), что лучше использовать вместо потоков?

Для тяжёлого Python-кода в обычной сборке CPython с GIL часто используют процессы, например ProcessPoolExecutor. Они выполняются в отдельных интерпретаторах и могут загрузить несколько ядер.

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

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

Для тяжёлого Python-кода в обычной сборке CPython с GIL часто используют процессы, например ProcessPoolExecutor. Они выполняются в отдельных интерпретаторах и могут загрузить несколько ядер.

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

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

Для тяжёлого Python-кода в обычной сборке CPython с GIL часто используют процессы, например ProcessPoolExecutor. Они выполняются в отдельных интерпретаторах и могут загрузить несколько ядер.

Цена — запуск процессов, сериализация аргументов и передача результатов. Поэтому слишком мелкие задачи выгоднее объединять. Если вычисления выполняет нативная библиотека, освобождающая GIL, потоки могут оказаться эффективными; отдельный вариант — векторизация или GPU. Free-threaded сборки меняют ограничения, но требуют проверки совместимости. Выбор делают по профилю нагрузки и измерениям, а не по правилу «CPU всегда только процессы».

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

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

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

Подробнее