gpt4 book ai didi

kotlin 协程 val vs fun

转载 作者:行者123 更新时间:2023-12-04 18:22:24 26 4
gpt4 key购买 nike

我是协程和 Kotlin 的新手。
为什么我得到不同的结果,下面的情况 1 和 2?

fun main(args: Array<String>) = runBlocking {
fun a() = async(CommonPool) {
println("start A")
delay(1000)
println("finish A")
}

fun b() = async(CommonPool) {
println("start B")
delay(1000)
println("finish B")
}

//case 1
a().await()
b().await()

//case 2
val A = a()
val B = b()
A.await()
B.await()
}

这种 val 风格编码是基本的吗?

最佳答案

情况1等价于

val A = a()
await(A)
val B = b()
await(B)

也就是你开始 A ,等待它(这里协程暂停),然后你才开始 B , 因此 AB顺序执行,而不是同时执行。

在第 2 种情况下,您同时启动 AB然后协程挂起等待 AB .

关于kotlin 协程 val vs fun,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43373792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com