首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >seastar::丝线是堆积如山的鱼线吗?

seastar::丝线是堆积如山的鱼线吗?
EN

Stack Overflow用户
提问于 2022-05-06 03:46:00
回答 1查看 170关注 0票数 1

Seastar允许编写这样的代码,方法是使用自己的堆栈附带的seastar::线程对象。 seastar::线程分配一个128 to堆栈,并在此之前运行给定的函数,直到它阻止对将来的get()方法的调用。在seastar::线程上下文之外,get()只能在已经可用的未来调用。但是,在线程内部,对尚未可用的未来调用get()将停止运行线程函数,并为这个未来计划一个延续,当将来可用时,它将继续运行线程的函数(在相同的保存堆栈上)。

以上句子引用自seastar教程,这是否意味着seastar::线程是一种堆积如山的协同线?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-09 16:32:52

是的,seastar::thread和“堆叠协同线”确实是非常相似的概念。

请注意,Seastar还支持使用新的协同器特性的无堆栈协同器。现在,这几乎总是比堆叠协同(seastar::thread)更可取:无堆栈协同操作更轻巧,并且在大量并发操作中也很有用(在这种操作中,每个服务员一个堆栈是一种很大的浪费),在C++语言中有更好的支持。无堆栈协同器还与基于未来的代码更好地合作--当您编写一个函数时,假设它在seastar::thread中运行,也就是说,在未做好准备的将来使用get(),您只能在seastar::thread内部调用该函数。相反,如果您用新的C++语法编写了一个无堆栈的协同线,那么您可以从任何基于将来的或基于协同的代码中调用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72135948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档