编辑“︁
Protothreads
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==简介== Protothreads可用于实现叫做[[协作式多任务]]的[[抢占式多任务处理|非抢占]]形式的[[并发计算]],故而在一个线程yield(让步)给另一个线程的时候不会招致[[上下文切换]]。为了在一个protothread内达成yield,在线程函数内利用了[[达夫设备]]并在其{{le|switch语句|Switch statement}}内使用一个函数外部的变量。这允许在另一次函数调用时跳转(恢复)到上次的yield的地方。为了[[阻塞 (计算)|阻塞]]线程,这些yield要通过等待[[条件表达式|条件]]来守卫,使得后续的对同样这个函数的调用仍然yield,直到这个条件表达式是为真值为止。 protothread的概念是{{le|Adam Dunkels|Adam Dunkels}}和Oliver Schmidt开发的<ref>{{cite web|url=http://dunkels.com/adam/pt/|title=Protothreads - Lightweight, Stackless Threads in C|author=Adam Dunkels|date=|website=Dunkels.com|access-date=April 21, 2017|archive-date=2019-12-09|archive-url=https://web.archive.org/web/20191209215203/http://www.dunkels.com/adam/pt/|dead-url=no}}</ref>,基于了[[Simon Tatham]]<ref>{{Cite web |url=https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html |title=存档副本 |accessdate=2019-11-26 |archive-date=2019-11-09 |archive-url=https://web.archive.org/web/20191109155253/https://www.chiark.greenend.org.uk/~sgtatham/coroutines.html |dead-url=no }}</ref>和{{le|Tom Duff|Tom Duff}}<ref name="tatham_duff" />此前的工作。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息