En god idiomatisk løsning på arbejde der skal fordeles mellem tråde er brugen af synkroniserede køer som pipelines. Trådene kan sammenlignes med et samlebånd af arbejdere der udfører et stykke arbejde på et emne og sender emnet videre til næste fase på båndet.
Ude på fabrikken skal arbejderne ved samlebåndet fordeles så emnerne ikke sendes hurtigere af sted end den næste kan modtage, for at undgå pukler af emner der kan ende med at vælte af samlebåndet. På samme måde kan en software pipeline potentielt beslaglægge alt ledig hukommelse hvis der ukontrolleret opstår pukler af arbejde. Pythons synkroniserede Queue klasse kommer ud over dette problem ved at køens størrelse kan angives: når denne størrelse er nået blokeres producer indtil køens størrelse er under maks.

Read More