From Wikipedia, the free encyclopedia
Jump to: navigation, search

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. Protothreads are also stackless, which means global variables are needed for preserving variables across context switches.[1]

The protothread concept was developed by Adam Dunkels and Oliver Schmidt.[2]

See also[edit]


  1. ^ A. Dunkels, O. Schmidt, T. Voigt, and M. Ali, Protothreads: Simplifying Event-Driven Programming of Memory-Constrained Embedded Systems, Proc. ACM SenSys, Boulder, CO, USA, Nov 2006. (PDF, Presentation slides)
  2. ^ Adam Dunkels' website

External links[edit]