カテゴリ: Kotlin 更新日: 2025/12/06

Kotlinのlaunchとasyncの違いを徹底解説!初心者向け非同期処理入門

Kotlinのlaunchとasyncの違いを理解しよう
Kotlinのlaunchとasyncの違いを理解しよう

先生と生徒の会話形式で理解しよう

生徒

「Kotlinでlaunchとasyncってよく出てきますけど、何が違うんですか?」

先生

「とても重要なポイントですね。Kotlinの非同期処理でよく使われるのがlaunchasyncです。見た目は似てますが、実は目的が全然違います。」

生徒

「えっ、同じようにコルーチンを使うのに、使い方が違うんですか?」

先生

「そうなんです。では、Kotlinの非同期処理の基本として、launchasyncの違いをわかりやすく解説していきましょう!」

1. Kotlinの非同期処理とは?

1. Kotlinの非同期処理とは?
1. Kotlinの非同期処理とは?

Kotlinには「コルーチン(coroutine)」と呼ばれる仕組みがあります。これは、プログラムを一時停止したり再開したりできる便利な機能で、「非同期処理(ひどうきしょり)」を簡単に書けるようにしてくれます。

非同期処理とは、たとえば「ボタンを押したあとにネットからデータを取ってくる」ような時間がかかる作業を、プログラム全体を止めずに別のところでやってくれる方法です。

そんな非同期処理を実現するために使われるのが、launchasyncです。

2. launchとは何か?

2. launchとは何か?
2. launchとは何か?

launchは、「とりあえずこの作業を別でやっておいて!」というような命令です。何かの作業を並行して進めたいときに使います。

例えば、画面に表示するアニメーションやログの記録など、「結果がいらない」処理をするときに便利です。


import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        println("ログを記録中...")
        delay(1000)
        println("ログ完了")
    }
    println("メイン処理中...")
}

メイン処理中...
ログを記録中...
ログ完了

このように、launchは「仕事を頼むだけ」で、結果は特に受け取らないのが特徴です。

3. asyncとは何か?

3. asyncとは何か?
3. asyncとは何か?

asyncは、「この作業の結果があとで必要になるから、準備しといてね!」という命令です。つまり、処理の結果を受け取るために使います。

asyncを使うと、Deferred(ディファード)という「未来の結果を入れておく箱」のようなものが返ってきます。


import kotlinx.coroutines.*

fun main() = runBlocking {
    val result = async {
        delay(1000)
        100 + 200
    }
    println("計算中...")
    println("計算結果は:${result.await()}")
}

計算中...
計算結果は:300

ここで注目してほしいのはawait()です。これは、「箱の中身ができあがるまで待つ」ためのものです。

4. launchとasyncの違いを比べてみよう

4. launchとasyncの違いを比べてみよう
4. launchとasyncの違いを比べてみよう

ここで、launchasyncの違いを簡単に表にまとめてみます。

項目 launch async
目的 結果を使わない並行処理 結果を使う非同期計算
戻り値 Job Deferred(結果を持つ)
結果の取得 不要 await()で取得
使い道の例 ログ記録、UI更新 計算処理、API通信

5. 実生活にたとえてみよう

5. 実生活にたとえてみよう
5. 実生活にたとえてみよう

たとえば、あなたがカレーを作っているとします。

  • launchは、「友達に皿を洗っておいて」と頼むイメージ。結果(皿がどのくらいピカピカか)は気にしません。
  • asyncは、「友達にご飯を炊いておいて」と頼むイメージ。あとで「炊けたご飯」が必要なので、結果が大事です。

このように、launchasyncは「目的」が大きく違うんです。

6. どちらを使えばいいの?

6. どちらを使えばいいの?
6. どちらを使えばいいの?

結論として、次のように使い分けるのが基本です。

  • 何かを実行するだけで、結果がいらない → launch
  • 結果をあとで使いたい → async

この判断基準を覚えておくと、Kotlinの非同期処理がグッと分かりやすくなりますよ。

7. Kotlinの非同期処理で気をつけたいポイント

7. Kotlinの非同期処理で気をつけたいポイント
7. Kotlinの非同期処理で気をつけたいポイント

非同期処理は便利ですが、使い方を間違えるとバグの原因にもなります。特に注意したいのは、await()を忘れることです。

asyncで処理を書いたあと、await()をしないと、結果を使わないまま終わってしまいます。

また、launchasyncの中で例外(エラー)が出ると、ちゃんとキャッチしないと見落としてしまう可能性もあります。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
New2
Kotlin
Kotlinのコーディング規約(公式スタイルガイド)とは?読みやすいコードを書くための基本ルール
New3
Kotlin
Kotlinの関数型を整理するパッケージ・ファイル構造の例を初心者向けにやさしく解説!
New4
Swift
Swiftデータ型まとめ|String・Int・Bool・Arrayの基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.4
Java&Spring記事人気No4
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.5
Java&Spring記事人気No5
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.6
Java&Spring記事人気No6
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.7
Java&Spring記事人気No7
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!