本篇文档解析 example-basic-02.kt,探讨协程中最核心的代码组织单位:挂起函数。
1. 什么是挂起函数?
挂起函数是使用 suspend 关键字修饰的函数。它是协程的逻辑单元。
特性:
- 非阻塞:挂起函数在执行到某些异步操作(如
delay)时,会释放当前线程,让线程去处理其他任务。 - 可恢复:当异步操作完成后,挂起函数会从刚才暂停的地方恢复执行。
- 调用限制:挂起函数只能在协程或其他挂起函数中调用。
2. 代码解析
1 | fun main() = runBlocking { |
- 提炼逻辑:
doWorld()将原来直接写在launch里的逻辑提取了出来。 - 代码整洁:通过挂起函数,我们可以像写同步代码一样组织复杂的异步逻辑,避免了传统嵌套回调(Callback Hell)。
3. 开发者感悟
suspend 关键字是一个信号,它告诉编译器:“这个函数可能会挂起当前协程”。它并不代表这个函数会自动在后台运行,它只是允许该函数内部调用其他的挂起函数。这是协程实现“顺序编写异步代码”的基础。