#牛客在线求职答疑中心# runBlocking {
    var job = Job()
    launch(job) {
        println("1")
        delay(1000)
        println("2")
    }
    launch(job) {
        println("3")
        delay(2000)
        println("4")
    }
    job.join()
    println("end")
}
这个不会走路最后的end打印,具体原因是什么啊
全部评论
这段代码是一个Kotlin协程的例子,其中`runBlocking`是一个挂起函数,用于启动一个新的协程并阻塞当前线程,直到协程执行完毕。在这个例子中,`runBlocking`创建了一个新的协程`job`,并在该协程中启动了两个子协程。 第一个子协程在`launch`函数中执行,该函数用于启动一个新的协程并立即返回,而不会阻塞当前线程。在这个子协程中,首先打印"1",然后延迟1000毫秒,最后打印"2"。 第二个子协程也在`launch`函数中执行,同样首先打印"3",然后延迟2000毫秒,最后打印"4"。 `job.join()`是一个挂起函数,用于等待协程`job`执行完毕。在这个例子中,`job`是`runBlocking`创建的协程,所以`job.join()`实际上是在等待`runBlocking`创建的协程执行完毕。 然而,由于`runBlocking`创建的协程中启动了两个子协程,这两个子协程的执行顺序是不确定的。如果第一个子协程先执行,那么它将打印"1",然后延迟1000毫秒,然后打印"2"。如果第二个子协程先执行,那么它将打印"3",然后延迟2000毫秒,然后打印"4"。 由于`runBlocking`创建的协程需要等待其所有子协程执行完毕才能结束,所以如果第一个子协程先执行,那么`runBlocking`创建的协程将等待1000毫秒,然后打印"2",最后打印"end"。如果第二个子协程先执行,那么`runBlocking`创建的协程将等待2000毫秒,然后打印"4",最后打印"end"。 因此,`end`的打印时间取决于哪个子协程先执行。如果第一个子协程先执行,那么`end`将在1000毫秒后打印。如果第二个子协程先执行,那么`end`将在2000毫秒后打印。
点赞 回复
分享
发布于 03-14 23:30 此内容由AI生成
你的父job一直处于 协程的Active状态,没有转化到Completing状态。 所以join会一直卡住。 在job.join之前,加上 job.complete() ,会让job进入Completing状态,然后Child Job完成,父Job会进入到Completed状态。就返回了~
点赞 回复
分享
发布于 03-15 01:13 浙江
联易融
校招火热招聘中
官网直投

相关推荐

#实习#【2025届实习生招聘】内推链接:https://careers.pinduoduo.com/campus/intern?t=BbxJCv8SBL,内推码:BbxJCv8SBL。期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~),(使用楼主内推码,优先进入楼主所在团队进行面试,并且能通过私聊楼主了解进度)Web前端研发实习生可点击👇【拼多多校园招聘】内推链接:https://careers.pinduoduo.com/campus/intern/detail?t=iWVP9D5jdP,内推码:iWVP9D5jdP。Web前端研发实习生 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)客户端研发实习生可点击👇【拼多多校园招聘】内推链接:https://careers.pinduoduo.com/campus/intern/detail?t=R7eeZxU4EC,内推码:R7eeZxU4EC。客户端研发实习生 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)算法实习生可点击👇【拼多多校园招聘】内推链接:https://careers.pinduoduo.com/campus/intern/detail?t=TcjzVeYpmh,内推码:TcjzVeYpmh。算法实习生 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)服务端研发实习生可点击👇【拼多多校园招聘】内推链接:https://careers.pinduoduo.com/campus/intern/detail?t=WNOrPRRxQN,内推码:WNOrPRRxQN。服务端研发实习生 期待你的加入!我们一起,无拼不青春!(通过此链接投递计入内推,内推简历优先筛选~)欢迎各位通过我们的内推码,进行投递面试,未来加入我们团队!期待您的加入能为团队注入新的活力和创造力,与我们一起共同努力,共同成长。您的才华将成为我们团队的宝贵财富,让我们一起创造更加美好的未来!投递完成,下面👇评论区回复,名字 首字母 + 岗位 (隐私起见使用首字母,楼主会回复是否投递成功,有相关对面试笔试的疑问也可以问楼主,楼主也是过来人)
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务