Kotlin 科特林合作项目val vs fun
我是科特林和科特林的新手。 为什么我会得到不同的结果,下面的案例1和案例2Kotlin 科特林合作项目val vs fun,kotlin,coroutine,Kotlin,Coroutine,我是科特林和科特林的新手。 为什么我会得到不同的结果,下面的案例1和案例2 fun main(args: Array<String>) = runBlocking { fun a() = async(CommonPool) { println("start A") delay(1000) println("finish A") } fun b() = async(CommonPool) { pr
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()
}
fun main(args:Array)=运行阻塞{
fun a()=异步(公共池){
println(“启动A”)
延迟(1000)
println(“完成A”)
}
fun b()=异步(公共池){
println(“启动B”)
延迟(1000)
println(“饰面B”)
}
//案例1
等待
等待
//案例2
val A=A()
val B=B()
A.等待
B.等待
}
这是val样式的基本编码吗?案例1相当于
val A = a()
await(A)
val B = b()
await(B)
也就是说,您启动A
,等待它(此时协同程序挂起),然后才启动B
,因此A
和B
按顺序执行,而不是同时执行
在案例2中,您同时启动
A
和B
,然后协同程序才会暂停等待A
和B
,啊,好的!现在我明白了。谢谢你的回复!