<KotlinLearn/>
コルーチン レッスン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エディタ