En protråd är en enhet för mjukvarubehandling som tillhandahålls av speciell programvara som gör att du inte kan använda operativsystemets trådningsmekanismer , en av formerna för att implementera koroutiner .
Genom att fungera som "lättvikts"-trådar som inte använder stacken ger protrådar ett blockerande sammanhang till priset av att slösa byte av minne per tråd. Eftersom protrådar inte använder stacken, måste du använda globala variabler för att spara värden över kontextväxlar [1] . Protrådar är inte förvägsbara, så kontextväxling är endast möjlig vid blockeringsoperationer.
Konceptet med protoflöden utvecklades av Adam Dunkels och Oliver Schmidt [2] . Flera olika protothreading-bibliotek för C och C++ har implementerats .