协程怎么比线程快?

我试图找到一种情况,将多线程更改为协程将加快处理受影响的代码部分。 据我发现,与线程相比,协程使用更少的CPU和堆空间,但我仍然无法找到协程比线程更快的情况。 虽然我知道,协程创建和上下文切换比使用线程的相应操作便宜得多,但是我在速度差异上没有察觉到结果(没有测量线程创建,两种情况都是完全相同的)。

那么,甚至有可能找到一个协程比线程更快执行的情况呢?

有一件事要注意的是,当你有很多很多协程的时候,协程是非常优越的。 您可以毫不费力地创建和执行数以千计的协程,如果您尝试通过线程来实现,所有与线程相关的开销可能会迅速终止主机。 所以,这使您可以考虑大规模并行化,而无需管理工作线程和可运行的程序。 他们还可以很容易地实现异步计算模式,这对于使用基本线程(如渠道和参与者)来实现将非常困难。

关于您的问题,范围之外,但仍值得注意的是概念的通用性,因为协程的用例不仅限于异步计算。 协程的核心是可暂停的函数,例如,也可以使用像python这样的生成器,而不会立即连接到异步编程。