Очень часто в коде наблюдаю следующую историю:
проект, использующий producer-consumer паттерн делает продюсера отдельным потоком, вот даже
пример из первой ссылки по запросу "Producer-consumer in python".
В силу своей необразованности в этом плане для меня удивительным кажется вынесение логики пополнения очереди задачами в отдельный поток: почему бы не оставить ее в основном? Я предполагаю, что выносить логику продюсера(target или наследованием) в отдельный поток нужно, когда наш основной поток не должен забиваться блокировкой. Так ли это?
Если нет или я прав частично, то, пожалуйста, объясните, в каких случаях стоит предпочесть вызов логики продюсера в основном потоке, а в каком выносить ее.