コルーチン レッスン2
launch・async
launchで起動するコルーチンとasyncで結果を返すコルーチンの違いを学びます。
launchとasyncの違い
launchとasyncは両方ともコルーチンを起動しますが、戻り値が異なります。 launchはJobを返して結果を返しません。asyncはDeferredを返して結果をawait()で取得できます。
- launch: Jobを返す、Fire-and-forget型
- async: Deferred<T>を返す、結果をawait()で取得
- await()はsuspend関数なのでコルーチン内でのみ呼べる
- asyncで並列処理することでパフォーマンス向上
launchの使い方
launchはJobを返し、join()で完了を待てます。
Kotlinエディタ
asyncとawait
asyncで非同期処理を起動し、await()で結果を取得します。
Kotlinエディタ
並列実行によるパフォーマンス
asyncで並列実行するとシーケンシャル実行より速くなります。
Kotlinエディタ