Если ваш код чистый Python и вы используете CPython, многопоточность, скорее всего, не ускорит ваш код из-за глобальной блокировки интерпретатора .Вероятно, вы ищете модуль multiprocessing
, в частности его Pool.map()
метод .
Поскольку использование mulitprocessing
означает использование отдельных процессов вместо простоВ отдельных потоках такие вещи, как блокировка, станут гораздо менее важной проблемой.
Тем не менее, векторизация вашего кода с использованием NumPy или написание внутреннего цикла на эффективном скомпилированном языке, таком как C или Cython, вероятно, даст вам гораздо большую скорость.чем распараллеливание до четырех ядер.