协程如何比线程快?

祈祷的

我试图找到一种情况,将多线程更改为协程将加快对受影响代码段的处理。就我发现协程比线程使用更少的CPU和堆空间而言,我仍然找不到协程比线程快的情况。尽管我知道协程的创建和上下文切换比使用线程的相应操作便宜得多,但是在速度差异方面我得到了难以察觉的结果(如果不测量线程的创建,两种情况将完全相同)。

因此,甚至有可能找到协程比线程执行更快的情况吗?

罗宾

要注意的一件事是,当您有很多协程时,协程会非常优越。您可以毫不犹豫地创建和执行数千个协程,如果您尝试通过线程进行此操作,则与线程相关的所有开销都可能很快杀死主机。因此,这使您无需管理辅助线程和可运行对象就可以考虑大规模并行化。它们还使实现异步计算模式变得容易,而使用基本线程(如通道和参与者)则很难实现异步计算模式。

关于您的问题超出范围,但仍然值得注意的是该概念的通用性,因为协程的用例不仅限于异步计算。协程的核心是可挂起的函数,例如,它们还可以像python中那样启用生成器,而您不会立即连接到异步编程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章