A protoszál egy speciális szoftver által biztosított szoftverfeldolgozási egység, amely lehetővé teszi, hogy ne használja az operációs rendszer szálfűzési mechanizmusait , amely a korutinok megvalósításának egyik formája .
Azáltal, hogy "könnyű" szálakként működnek, amelyek nem használják a veremet, a protoszálak blokkoló kontextust biztosítanak szálanként bájt memória pazarlása árán. Mivel a protoszálak nem használják a veremet, globális változókat kell használnia az értékek mentéséhez a kontextuskapcsolók között [1] . A protoszálak nem előzhetők meg, így a környezetváltás csak blokkoló műveleteknél lehetséges.
A protofolyamok koncepcióját Adam Dunkels és Oliver Schmidt dolgozta ki [2] . Számos különböző protothreading könyvtárat valósítottak meg C és C++ számára .