【发布时间】:2017-11-03 09:36:08
【问题描述】:
我试图找到一种情况,将多线程更改为协程将加快受影响代码部分的处理速度。据我发现协程与线程相比使用更少的 CPU 和堆空间,我仍然找不到协程比线程快的情况。虽然我知道协程创建和上下文切换比使用线程的相应操作要便宜得多,但我在速度差异方面得到了难以察觉的结果(如果不测量线程创建,两种情况都将完全一样)。
那么,是否有可能找到协程比线程更快执行的情况?
【问题讨论】:
-
需要注意的一点是,当你有很多很多协程时,协程会非常优越。您可以不加思索地创建和执行数千个协程,如果您尝试通过线程执行此操作,那么与线程相关的所有开销可能会很快杀死主机。因此,这使您能够考虑大规模并行化,而无需管理工作线程和可运行对象。
-
@Robin 请将其发布为答案
-
@Ilya Done,还添加了更多信息。
标签: multithreading performance kotlin coroutine