Из-за from multiprocessing.pool import ThreadPool
вы используете многопоточность, а не многопроцессорность.CPython использует глобальную блокировку интерпретатора, чтобы предотвратить одновременное выполнение кода Python более чем одним потоком.
Таким образом, поскольку ваша программа ограничена ЦП, вы добавляете издержки потоков без каких-либо преимуществ из-за GIL.Многопоточность имеет смысл в Python для проблемы, связанной с вводом-выводом, потому что поток может работать, пока другие ожидают завершения ввода-вывода.
Вы можете попробовать использовать настоящую многопроцессорность, потому что тогда у каждого процесса Python будет свойGIL, но я все еще не уверен в выигрыше, потому что связь между процессами добавляет еще больше накладных расходов ...