187 字
1 分钟
区分 Kotlin 中的 launch _ join 和 async _ await

区分 Kotlin 中的 launch / join 和 async / await#

  • launch/join:

launch_用于启动和停止协程。如果_launch 中的代码抛出异常,它会被视为线程中的未捕获异常,通常会在_JVM_程序中写入 stderr 并导致 Android 应用程序崩溃。join 用于在传播其异常之前等待启动的协程完成。另一方面,崩溃的子协程会用匹配的异常取消其父协程。

  • async/await:

async 关键字用于启动计算返回结果的协程。我们必须对结果使用 await,它由_Deferred_ 的实例表示。异步代码中未捕获的异常保存在生成的 _Deferred_中,不会传输到其他任何地方。它们在处理之前不会被执行。

区分 Kotlin 中的 launch _ join 和 async _ await
作者
强人自传
发布于
2024-05-30
许可协议
CC BY-NC-SA 4.0