Для всего 10 000 простых операций накладные расходы параллелизма могут превысить выигрыш. Сначала измерьте последовательный вариант; для тяжёлого CPU-кода в обычном CPython чаще подходят процессы.
Есть 10 000 математических операций с библиотекой math. Что лучше использовать для ускорения: мультитрейдинг или мультипроцессорность?
Для всего 10 000 простых операций накладные расходы параллелизма могут превысить выигрыш. Сначала измерьте последовательный вариант; для тяжёлого CPU-кода в обычном CPython чаще подходят процессы.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для всего 10 000 простых операций накладные расходы параллелизма могут превысить выигрыш. Сначала измерьте последовательный вариант; для тяжёлого CPU-кода в обычном CPython чаще подходят процессы.
Не создавайте отдельную задачу на каждую дешёвую операцию: объединяйте их в chunks. Потоки помогают при освобождении GIL библиотекой или в подходящей free-threaded сборке, но это нужно проверить. Векторизация также может оказаться быстрее процессов с сериализацией данных.
Источник: docs.python.org.