◆ protothread是专为资源有限的系统设计的一种耗费资源特别少并且不使用堆栈的线程模型,相比于嵌入式操作系统,其有如下优点:
1. 以纯C语言实现,无硬件依靠性; 因此不存在移植的困难。
2. 极少的资源需求,每个Protothread仅需要2个额外的字节;
3. 支持阻塞操纵且没有栈的切换。
◆它的缺陷在于:
1. 函数中不具备可重入型,不能使用局部变量;
2. 按顺序判断各任务条件是否满足,因此无优先级抢占;
3. 任务中的各条件也是按顺序判断的,因此要求任务中的条件必须是依次出现的。
◆ protothread的阻塞机制: 在每个条件判断前,先将当前地址保存到某个变量中,再判断条件是否成立,若条件成立,则往下
运行;若条件不成立,则返回。
◆ protothread基本源码及注释:
◆ 实例及展开源码:
应用实例:
线程1,2的展开式:
本文介绍了一种适用于资源受限系统的线程模型——Protothread。该模型采用纯C语言编写,具有极少的资源需求,并支持阻塞操作而无需栈切换。文章详细解释了其工作原理、基本源码及实例,同时指出了其局限性。

346

被折叠的 条评论
为什么被折叠?



