ProtoThreads
ProtoThreads是一个宏封装库,通过编程技巧完成了对常见线程管理的模拟,所有的操作都使用宏完成。
重要技巧——
__LINE__
语句的使用,巧妙地完成了“线程”中阻塞位置的标记;- 配合pt-switch.h中的
switch-case
语句展开后,二次进入线程执行,不影响循环/判断等程序块底部的跳转。即:二次进入由case __LINE__:
处开始执行,执行到块尾(大括号关闭处)时,会回到块首执行。
典型优点——
- 纯C写就,且只需要包含几个头文件;
- 宏展开后函数层级不多,对栈压力不大。
注意事项——
- 不可嵌套
switch-case
语句。
详细介绍可以参考以下两个链接——
这个博客逐行分析了源码
这个博客对官网介绍进行了翻译