[英]kotlin coroutine val vs fun
我是coroutine和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
,因此A
和B
按顺序执行,而不是同时执行。
在情况2中,您同时启动A
和B
,然后协程暂停等待A
和B
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.