kotlin - 关于kotlin协程基础Api的问题
问题描述
Kotlin 可以使用 createCoroutine() 函数来创建协程。在这个功能的描述中,我一句话都看不懂。
要开始执行创建的协程,
resume(Unit)
请在返回的 [Continuation] 实例上调用。
我不知道我的理解是否正确。我的想法是,在调用 resume() 函数之前,协程体并没有被执行,而只存在于 Continuation 对象中。调用 resume() 函数后,执行挂起 lambda 表达式并返回结果。
这是正确的理解吗?
非常感谢您的回答
解决方案
我相信这是正确的。lambda 的结果不会返回给您,而是传递给下一个延续(如果指定)。
createCoroutine()
并且Continuation
是一个非常低级的东西,通常你不直接使用它们。从协程上下文之外启动协程有一些高级别的选择。如果您不确定是否真的需要使用createCoroutine()
,那么您可能正在寻找:runBlocking()、CoroutineScope()然后launch()
或GlobalScope.launch()(但请阅读GlobalScope
注释)。
推荐阅读
- deep-learning - Deeplearning4j 中的时期和迭代
- java - 在 Java 中使用 Integer 作为键和 HashMap
- arrays - 如何通过 jq 从带有数组的 JSON 中提取特定对象
- sql - 如何使用 TSQL 获取一年中的最后一个星期日?
- android - 使用 QR 码配置 Android 时出现校验和错误
- ios - iOS 安全区域大小不知何故是 88 而不是 44
- node.js - 通过邮递员调用 API 工作正常,但通过 axios 发布不起作用
- c++ - dyld:库未加载:/usr/local/opt/jpeg/lib/libjpeg.9.dylib OpenCV C++ MacOS
- java - 无法在 Wildfly 8 AS 中部署 Spring Boot 应用程序
- android - com.android.build.api.transform.TransformException