首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Kotlin中,一个线程一次只能运行一个协程?

在Kotlin中,一个线程一次只能运行一个协程?
EN

Stack Overflow用户
提问于 2020-10-05 08:22:56
回答 1查看 427关注 0票数 1

我对Kotlin协程和线程的理解是这样的:

一个线程一次只能运行一个协程。一个线程可以同时处理多个协程。它可以挂起一个协程并运行一个不同的协程。但是在给定的时间点上,一个线程上只有一个协程在运行。您不能在同一时间点在同一线程上运行多个协程。

是这样的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-05 17:53:26

是的,这是正确的。

协程可以看作是线程运行的指令序列,直到它遇到一个挂起点,在这个点上,协程挂起它的执行(保存调用堆栈和本地变量以便稍后恢复),并产生控制,在这种情况下,它不再在它运行的线程上运行。

这非常类似于返回的函数不再在线程上运行,而是将控制权返回给调用者,但是协程额外保存了它的状态,以便以后可以在同一个线程或另一个线程上恢复它。一旦协程产生了控制权,线程就会返回到启动或恢复协程的代码。该代码可能是也可能不是另一个协程。

您可以将线程视为比协程更低级别(操作系统级别或JVM级别)的原语。应用程序中的所有代码都是在某个线程中执行的,每次在每个线程中执行一个指令序列,协程在这个意义上也不是唯一的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64201104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档