在函数coroutineContext[Job]!!
内部使用安全吗?suspend
所有挂起函数都有一个作业吗?
问问题
297 次
1 回答
1
不,并非所有挂起功能都有工作。
coroutineContext
suspend
是通用的 Kotlin 机制,通过调用链透明地传递协程相关的对象,Job
是kotlinx.coroutines
具体的抽象。
如果您通过任何kotlinx.coroutines
支持的构建器启动了协程Job
(例如使用async
,launch
或produce
。您可以查看特定的构建器文档以检查它是否支持Job
),那么您Job
的coroutineContext
.
但是如果你以另一种方式启动协程,例如使用 stdlib buildSequence
,那么协程上下文将不包含作业。
于 2018-05-07T10:24:40.680 回答