繁体   English   中英

kotlin coroutine val vs fun

[英]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 ,因此AB按顺序执行,而不是同时执行。

情况2中,您同时启动AB ,然后协程暂停等待AB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM