Kotlin Coroutines 选择 Dispatcher

Posted

技术标签:

【中文标题】Kotlin Coroutines 选择 Dispatcher【英文标题】:Kotlin Coroutines choosing Dispatcher 【发布时间】:2019-11-28 06:14:24 【问题描述】:

我正在尝试找出在什么情况下使用哪个 Dispatcher。

我阅读了一些文档并想出了这个:

默认 → CPU 工作 主 → 主(更新 UI) 无限制 IO → 写入文件/网络任务

是这样吗?

那么无限制呢?

【问题讨论】:

在生产代码中你通常不会使用Unconfined。这是一个特殊用途的无操作调度程序。 【参考方案1】:

您对调度程序类型的假设是正确的。无约束调度器——

一个不局限于任何特定线程的协程调度器

当协程不消耗 CPU 时间也不更新任何受限于特定线程的共享数据(如 UI)时,无限制调度程序是合适的。

您可以在here 和here 阅读更多相关信息

【讨论】:

以上是关于Kotlin Coroutines 选择 Dispatcher的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin Coroutines不复杂, 我来帮你理一理

Kotlin Coroutines 中的 main-safe 是啥?

Kotlin Coroutines 的现有 3 函数回调

Kotlin Coroutines:等待多个线程完成

Kotlin Coroutines viewModelScope 中的改造调用

如何使用 Kotlin Coroutines 在 Retrofit 中处理 204 响应?