gpt4 book ai didi

asynchronous - Kotlin协程中的launch/join和async/await有什么区别

转载 作者:IT老高 更新时间:2023-10-28 13:26:00 29 4
gpt4 key购买 nike

kotlinx.coroutines 库中,您可以使用 launch(使用 join)或 async 启动新的协程>(使用 await)。它们之间有什么区别?

最佳答案

  • launch用于触发并忘记协程。这就像开始一个新线程。如果 launch 中的代码以异常终止,那么它会被视为线程中的 uncaught 异常——通常在后端 JVM 应用程序中打印到 stderr 并导致 Android 应用程序崩溃。 join用于等待启动的协程完成,并且不会传播其异常。然而,一个崩溃的 child 协程也会取消它的父协程,并产生相应的异常。

  • async用于启动一个计算某些结果的协程。结果由 Deferred 的实例表示你必须使用await在上面。 async 代码中未捕获的异常存储在生成的 Deferred 中,并且不会传递到其他任何地方,除非处理,否则它将被静默丢弃。 您一定不要忘记您使用异步启动的协程

关于asynchronous - Kotlin协程中的launch/join和async/await有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46226518/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com