Protothread:
Lightweight, Stackless Threads in C
C协程
利用C语言的语法特性或者利用编译器特性来完成上行文的切换,所有的thread共用一个堆栈,只是用2byte保存上下文。类似于协作式操作系统,由thread主动释放CPU。设计原理可参照http://www.chiark.greenend.org.uk/~sgtatham/coroutines.html 文件代码可参照http://dunkels.com/adam/pt/index.html
一个典型的Protothread(以下简称pt)如下
PT_INIT(&ptex);
PT_THREAD(pt_name)(struct *pt, void *param)
{
PT_BEGIN(pt);
while(1)
{
PT_WAIT_UNTIL(pt, conditio......
阅读全文