小编Joe*_*Dow的帖子

为什么 kotlin 协程被认为是轻量级的?

如果协程仍然使用线程并行运行代码,为什么它被认为是轻量级的?

在我的理解 kotlin 的suspend功能被编译器转换成状态机,其中每个分支可以在开发人员定义的相同或不同线程上运行。协程构建器,例如,launch{}负责它并CoroutineContext定义要运行的线程。

通过将代码块发送到利用相同线程的线程池来实现并行性

有一个关于 100k 协程和 100k 线程的基准测试,其中协程毫无问题地通过并且线程抛出异常(可能是 OutOfMemory)。这让我想到我在这里遗漏了一些东西。

你能帮我理解这里遗漏了什么,是什么让协程并行运行代码块 100k 而不像线程那样超过内存限制?

multithreading kotlin kotlin-coroutines

6
推荐指数
2
解决办法
895
查看次数

标签 统计

kotlin ×1

kotlin-coroutines ×1

multithreading ×1