Kotlin 协程源码解析
从 Kotlin 编译器生成的代码出发,逐步深入 Kotlin 协程的底层实现。
suspend 函数 → 状态机 → Continuation → Continuation 链 → 挂起与恢复 → Dispatcher
目录
- Kotlin 协程源码解析(一)一个 suspend 函数,为什么会变成一个普通函数?
- Kotlin 协程源码解析(二)Kotlin 编译器是如何把 suspend 函数变成状态机的?
- Kotlin 协程源码解析(三)Continuation 到底是谁创建的?
- Kotlin 协程源码解析(四)Continuation 的链式关系 —— 一个 suspend 函数如何把结果交还给调用者?
- Kotlin 协程源码解析(五):BaseContinuationImpl.resumeWith() —— Continuation 链是如何被展开的?
- # Kotlin 协程源码解析(六)
delay()是如何挂起协程的?
阅读路线
suspend 函数
↓
编译器生成普通函数
↓
状态机
↓
Continuation
↓
Continuation 链
↓
挂起与恢复
↓
Dispatcher
这个系列会从 Kotlin 协程最基础的编译结果开始,一层一层向下追踪源码,最终理解一个协程从调用、挂起到恢复执行的完整过程。
后续文章会持续更新到这里。