В высоконагруженном Python-сервисе вы замечаете, что при увеличении числа потоков скорость обработки CPU-bound задач не растёт. Почему так происходит и как это исправить?
Из-за GIL только один поток выполняет байткод одновременно, поэтому многопоточность не ускоряет CPU-bound задачи. Решение — использовать multiprocessing, вынести тяжёлые вычисления в C-расширения или применять библиотеки вроде NumPy, которые обходят GIL.
Библиотека собеса по Python
Библиотека собеса по Python
❤2