ではkotlinx.coroutines
、ライブラリ、あなたはどちらかを使用して新しいコルーチンを開始することができますlaunch
(とjoin
)またはasync
(でawait
)。それらの違いは何ですか?
launch
コルーチンを起動して忘れるのに使用されます。新しいスレッドを開始するようなものです。内のコードlaunch
が例外で終了した場合、それはスレッドでキャッチされない例外のように扱われます。通常、バックエンドJVMアプリケーションのstderrに出力され、Androidアプリケーションがクラッシュします。join
起動されたコルーチンの完了を待機するために使用され、その例外を伝播しません。ただし、クラッシュした子コルーチンは、対応する例外を使用して親をキャンセルします。
async
結果を計算するコルーチンを開始するために使用されます。結果はのインスタンスで表され、その上で使用Deferred
する必要がありますawait
。async
コード内のキャッチされなかった例外は結果の内部に格納され、Deferred
他の場所には配信されず、処理されない限り通知なしでドロップされます。あなたはasyncで始めたコルーチンを忘れてはいけません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加