Skip to content

Kotlin 协程基础

什么是协程

协程是一种轻量级的并发方案,可以在同一个线程上挂起和恢复执行,避免回调地狱。

基本使用

kotlin
// 在 ViewModel 中启动协程
viewModelScope.launch {
    val data = repository.fetchData()
    updateUI(data)
}

CoroutineScope

协程必须在作用域内启动:

作用域生命周期
GlobalScope进程级别
viewModelScopeViewModel 销毁时取消
lifecycleScopeActivity/Fragment 销毁时取消

挂起函数

使用 suspend 关键字标记,可以在协程中安全调用:

kotlin
suspend fun fetchData(): Result {
    return withContext(Dispatchers.IO) {
        api.getData()
    }
}

调度器

  • Dispatchers.Main — UI 线程
  • Dispatchers.IO — 网络/数据库操作
  • Dispatchers.Default — CPU 密集型任务

基于 VitePress 构建