Kotlin协程await与join挂起函数异同

Kotlin协程await与join挂起函数异同

Kotlin 复制代码
import kotlinx.coroutines.async
import kotlinx.coroutines.delay
import kotlinx.coroutines.runBlocking

fun main() {
    runBlocking {
        println("start")

        val job1 = async {
            println("1...")
            val t = (Math.random() * 999).toLong()
            delay(t)
            println("1 $t")
        }

        val job2 = async {
            println("2...")
            val t = (Math.random() * 999).toLong()
            delay(t)
            println("2 $t")
        }

        val job3 = async {
            println("3...")
            val t = (Math.random() * 999).toLong()
            delay(t)
            println("3 $t")
        }

        val r1 = job1.await()
        val r2 = job2.await()
        val r3 = job3.await()

        println("start next")
    }
}

输出:

start

1...

2...

3...

3 103

2 419

1 558

start next

Process finished with exit code 0

Kotlin协程中的await与join挂起函数,在某种程度上说,类似Java的CountDownLatch,等待任务完成后再进行下一步。await与join不同的是,await有返回值,join没有。xxx.await或者xxx.join,只要xxx这条协程运行完成,立即开始下一步。

相关:

https://blog.csdn.net/zhangphil/article/details/90758788

https://blog.csdn.net/zhangphil/article/details/147596030

https://blog.csdn.net/zhangphil/article/details/83443995

https://blog.csdn.net/zhangphil/article/details/154659832

https://blog.csdn.net/zhangphil/article/details/129270875

https://blog.csdn.net/zhangphil/article/details/132621143

https://blog.csdn.net/zhangphil/article/details/135272034

相关推荐
胡致和10 小时前
配置变更后,弹窗为什么飞到了最左边?
kotlin
zhangphil15 小时前
Android Page 3 Flow读sql数据库媒体文件,Kotlin
android·kotlin
小书房15 小时前
Kotlin使用体验及理解1
android·开发语言·kotlin
Kapaseker16 小时前
我想让同事知道我很懂 Compose 怎么办?
android·kotlin
jinanwuhuaguo1 天前
OpenClaw工程解剖——RAG、向量织构与“记忆宫殿”的索引拓扑学(第十三篇)
android·开发语言·人工智能·kotlin·拓扑学·openclaw
jinanwuhuaguo1 天前
OpenClaw协议霸权——从 MCP 标准到意图封建化的政治经济学(第十八篇)
android·人工智能·kotlin·拓扑学·openclaw
zhangphil2 天前
Android sql查媒体数据封装room Dao构造AndroidViewModel,RecyclerView宫格展示,Kotlin
android·kotlin
jinanwuhuaguo2 天前
反熵共同体——OpenClaw的宇宙热力学本体论(第十七篇)
大数据·人工智能·安全·架构·kotlin·openclaw
pengyu2 天前
【Kotlin 协程修仙录 · 筑基境 · 中阶】 | 身份证与通行证:CoroutineContext 的深度解剖
android·kotlin
夏沫琅琊2 天前
android 短信读取与导出技术
android·kotlin