协程进阶:组合 01. 默认顺序执行

本篇解析 example-compose-01.kt。探讨挂起函数在默认情况下的执行行为。

1. 核心现象:顺序执行

在协程内部,如果你只是简单地按行调用两个挂起函数,它们会按顺序执行

代码解析

1
2
3
4
5
6
val time = measureTimeMillis {
val one = doSomethingUsefulOne() // 耗时 1000ms
val two = doSomethingUsefulTwo() // 耗时 1000ms
println("The answer is ${one + two}")
}
// 结果:Completed in 2000+ ms

2. 开发者感悟

这是协程最自然的编程模型。代码读起来和同步代码一模一样,但底层是非阻塞的. 如果任务 A 的结果是任务 B 的输入,这种顺序执行就是你需要的。但如果任务 A 和 B 互不依赖,顺序执行就会浪费时间。

,