跳到主要内容

多线程与协程知识体系概览

问题

Android 多线程和异步编程涉及哪些核心知识?

答案

异步方案演进

核心知识图谱

主题内容
Handler/Looper线程间通信、消息队列、主线程消息机制
Kotlin 协程进阶CoroutineScope、Job、Dispatcher、结构化并发
Flow冷流、StateFlow、SharedFlow、操作符
RxJavaObservable、操作符、调度器、背压
线程池Executors、自定义线程池
同步机制synchronized、Lock、原子类

Android 线程规则

不可在主线程执行耗时操作

Android 主线程(UI 线程)负责绑定处理界面绘制和用户交互。在主线程执行网络请求、数据库操作等耗时操作会导致 ANR。

// ❌ 错误:主线程网络请求
val data = URL("https://api.example.com").readText()

// ✅ 正确:协程切换到 IO 线程
lifecycleScope.launch {
val data = withContext(Dispatchers.IO) {
URL("https://api.example.com").readText()
}
textView.text = data // 自动回到主线程
}

相关链接