(Kotlin协程十三)Dispatchers.Main, IO, Default 分别适用于什么场景?它们的底层是什么?
Dispatchers.Main
、Dispatchers.IO
和Dispatchers.Default
是 Kotlin 协程中三个最核心的调度器,它们分别针对不同的任务类型进行了优化。正确选择它们,是保证应用性能、响应速度和资源高效利用的关键。我将从它们的适用场景和底层实现两个方面来详细阐述。”
第一部分:三大调度器的适用场景
1. Dispatchers.Main
-
适用场景:所有与 UI 更新相关的操作。
-
更新
View
的属性(如textView.text = "..."
) -
调用
RecyclerView
的notify
方法 -
操作
LiveData
的postValue
/setValue
-
执行轻量级的、不阻塞的 UI 逻辑
-
-
为什么必须用 Main:在 Android 中,UI 组件不是线程安全的,它们只能在主线程(UI 线程)中被创建和修改。违反此规则会抛出
CalledFromWrongThreadException
。 -
注意事项:绝对禁止在
Dispatchers.Main
上执行任何耗时操作