- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在 kotlinx.coroutines
库中,所有协程构建器,如 launch
、async
等都采用 CoroutineContext
参数,但也有一个额外的 parent
参数,其类型为 Job
。 CoroutineContext
和 Job
有什么区别?
最佳答案
Job
代表一个协程或某种正在执行的聚合任务。一个 Job
是一个 CoroutineContext.Element
,这意味着它可以存储在协程上下文中。 CoroutineContext
是不同协程上下文元素的集合,job 就是这样一个元素。
实际上,协程上下文更像是一个映射,因为您可以使用协程元素键从中检索元素。例如,如果您有一个 CoroutineContext
类型的值 ctx
,那么您可以使用 ctx[Job]
表达式从中检索作业。更多详细信息可在coroutines design document 的相应部分中找到。和 documentation for CoroutineContext .
当一个新的协程启动时,可以指定完整的上下文。如果此上下文包含一个作业,则相应的作业将成为新协程的 父级。
parent
参数用于像 launch
这样的协程构建器,只是为了使父作业规范更加明确。作为 launch
的文档突出显示 here明确指定的父作业优先于上下文中指定的作业。 this section 中给出了如何使用它的实际示例。指南。
关于kotlin - kotlinx.coroutines 中的 CoroutineContext 和 Job 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47689984/
我使用WorkManager版本 2.2.0 用于在用户再次上线时启动协程 API 调用。 In the example by Google ,如果我想将 CoroutineWorker 的线程从默认
我正在尝试在 Android 应用程序中使用 Kotlin 协程,特别是我已经导入了 Kotlin Coroutine Adapter for Retrofit . Kotlin Coroutine
viewModelScope用于将协程生命周期绑定(bind)到 ViewModel生命周期。 liveData builder 创建一个 LiveData运行协程,其生命周期绑定(bind)到 Li
Google Codelab Android Room with a View - Kotlin 具有以下 snippet : class WordViewModel(application: App
在 kotlinx.coroutines 库中,所有协程构建器,如 launch、async 等都采用 CoroutineContext 参数,但也有一个额外的 parent 参数,其类型为 Job。
退房this example使用状态和协程作为列表滚动 @Composable fun ScrollingList() { val listSize = 100 // We save
我是一名优秀的程序员,十分优秀!