首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解协同

理解协同
EN

Stack Overflow用户
提问于 2019-04-19 02:58:39
回答 1查看 414关注 0票数 1

在维基百科中,与螺纹的比较一段写道:

..。这意味着协同机制提供并发性,但不提供并行性。

我知道协同线比线程轻,不涉及上下文切换,不需要关键部分,所以也不需要互斥。令我困惑的是,它的工作方式似乎并没有扩大。根据维基百科的说法,协同机制提供了并发性,它们可以协同工作。一个具有协同机制的程序仍然按顺序执行指令,这与单核机器上的线程完全相同,但是多核机器呢?在这些线程上并行运行,而协同工作与在单个核心机器上的工作相同。

我的问题是,在多核机器上,协同机制如何比线程表现得更好?

EN

回答 1

Stack Overflow用户

发布于 2019-04-19 13:26:35

关于多核机器的...what?

Coroutines是一种并发模型(在这种模式中,两个或多个有状态活动可以同时进行),但不是并行模型(在并行模型中,程序能够使用比单个常规CPU核心所能提供的更多的硬件资源)。

线程可以彼此独立运行,如果您的硬件支持它(也就是说,如果您的机器有多个核心),那么两个或多个线程可以在同一时刻执行它们的独立活动。

但根据定义,合作是相互依存的。一个协同线只有在被另一个协同线调用时才运行,并且调用者被挂起,直到当前协同线调用回它。一组协同线中只有一个协同线能够在任何给定的时间内实际运行。

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

https://stackoverflow.com/questions/55756034

复制
相关文章

相似问题

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