Я думаю, что это зависит, это стандартная схема распределения работы. Ваш процессор загружен? Если это так, потоки не помогут вам масштабироваться из-за конфликта GIL Если это связано с IO, то потоки могут быть хорошим местом для начала.
С шаблоном пула потоков вы будете работать так, как вы обрисовали:
- ставит в очередь работу без блокировки из основного потока, а затем потребительские потоки будут читать из очереди в цикле.
Если ваша обработка связана с ЦП, может помочь многопроцессорный пул, использующий тот же шаблон:
Многопроцессорность обеспечивает абстракцию пула, и это было бы то же самое, за исключением того, что для очереди потребовалось бы какое-то межпроцессное взаимодействие (обрабатывается многопроцессорной очередью)
https://docs.python.org/2/library/multiprocessing.html#using-a-pool-of-workers
Каждый из них должен быть относительно прост в настройке, и каждый из них должен быть довольно простым для сравнения, чтобы увидеть, предлагают ли они улучшения производительности.