В обычном CPython с GIL CPU-bound Python-код часто масштабируют процессами, а не потоками. Реальный прирост ограничивают последовательная часть алгоритма, передача данных и конкуренция за память.
CPU-bound задача, ты упомянул, что она плохо масштабируется, а как именно она масштабируется в Python?
В обычном CPython с GIL CPU-bound Python-код часто масштабируют процессами, а не потоками. Реальный прирост ограничивают последовательная часть алгоритма, передача данных и конкуренция за память.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В обычном CPython с GIL CPU-bound Python-код часто масштабируют процессами, а не потоками. Реальный прирост ограничивают последовательная часть алгоритма, передача данных и конкуренция за память.
ProcessPoolExecutor позволяет распределить независимые крупные задачи по ядрам. Если библиотека выполняет вычисления вне GIL, эффективны и потоки; также помогают векторизация, нативный код или GPU. Увеличение workers не гарантирует линейного ускорения: измеряют throughput и latency при разных размерах задач. Free-threaded сборка меняет условия, но не отменяет синхронизацию и аппаратные ограничения.