Rom*_*rov 7 coroutine kotlin kotlin-coroutines
在kotlinx.coroutines
库中,所有协同构建器(如launch
,async
等)都接受CoroutineContext
参数,但也有parent
一个类型为的附加参数Job
.CoroutineContext
和之间有什么区别Job
?
Rom*_*rov 13
该Job
代表协程或某种正在执行的总任务.A Job
是a CoroutineContext.Element
,这意味着它可以存储在协程上下文中.它CoroutineContext
是不同的协程上下文元素的集合,其中job只是一个这样的元素.
事实上,协程上下文更像是一个映射,因为您可以使用协程元素键从中检索元素.例如,如果您具有ctx
type 值CoroutineContext
,则可以使用ctx[Job]
表达式从中检索作业.更多详细信息可以在coroutines设计文档的相应部分和CoroutineContext的文档中找到.
启动新协程时,可以指定完整上下文.如果此上下文包含作业,则相应的作业将成为新协程的父级.
parent
协同构建器之类的参数launch
只是为了使父作业规范更加明确.作为此处launch
重点的文档,显式指定的父作业优先于上下文中指定的作业.本指南的这一部分给出了如何使用它的实际示例.
归档时间: |
|
查看次数: |
918 次 |
最近记录: |