gpt4 book ai didi

multithreading - 协程如何比线程更快?

转载 作者:行者123 更新时间:2023-12-02 12:43:40 25 4
gpt4 key购买 nike

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

那么,是否有可能找到协程比线程执行速度更快的情况?

最佳答案

需要注意的一件事是,当您拥有大量协程时,协程会非常优越。你可以毫不犹豫地创建和执行数千个协程,如果你试图通过线程来做到这一点,那么与线程相关的所有开销可能会很快杀死主机。因此,这使您能够考虑大规模并行化,而无需管理工作线程和可运行对象。它们还可以轻松实现异步计算模式,而使用基本线程(如 channel 和参与者)实现这些模式将非常笨拙。

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

关于multithreading - 协程如何比线程更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47092460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com