A protothread is a low-overhead mechanism for concurrent programming.Protothreads function as stackless, lightweight threads providing a blocking context cheaply using minimal memory per protothread (on the order of single bytes).Protothreads are non-preemptable. Therefore, a context switch can only take place on blocking operations.