0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け】マルチスレッド処理って何?iOSアプリでの基本と使い方を解説!

Last updated at Posted at 2025-06-29

こんにちは!Storyboardでお天気アプリを作ってみたiOS開発初心者です。

その中で「UIの更新はMainスレッドで!」という大事なルールを学びました。
でも、そもそも「スレッド」って何?「マルチスレッド」ってどういう意味?と思った方も多いはず。

今回は、iOSアプリ開発におけるマルチスレッド処理の基礎を、わかりやすく紹介します!

スレッドってなに?

スレッド(Thread)とは、アプリの中で何かの処理を実行する流れ(作業ライン)のことです。

iOSでは、主に2種類のスレッドを使い分けます:

  • Mainスレッド:UIの表示・ユーザーの操作を担当(タップ・スクロールなど)
  • Backgroundスレッド:重たい処理(通信、画像処理など)を担当

🌀 マルチスレッド処理ってなに?

マルチスレッド処理とは、複数のスレッドを同時に使ってアプリを効率よく動かすことです。

メリット

  • UIが固まらない(=サクサク動く)
  • ユーザー体験が向上する
  • 時間のかかる処理を分離できる

スレッドをお店で例えると?

  • Mainスレッド:レジ係(ユーザーの応対=UI)
  • Backgroundスレッド:倉庫係(裏で商品を探す=重たい処理)

レジ係が商品を探しに行ってしまうと、お客さんは待たされますよね。
それと同じで、UIを担当するMainスレッドには重たい処理をさせないのが基本です。


Swiftでマルチスレッド処理を使う方法

Swiftでは、DispatchQueue を使ってマルチスレッド処理が簡単に書けます。

例:バックグラウンドで重たい処理 → メインスレッドでUI更新

DispatchQueue.global().async {
    // 重たい処理(例:計算、通信など)
    let result = heavyCalculation()

    DispatchQueue.main.async {
        // UIの更新(Mainスレッドで)
        self.resultLabel.text = "\(result)"
    }
}

お天気アプリでの具体例

APIで天気情報を取得して、画面に表示する流れのコードです。

func fetchWeather() {
    let url = URL(string: "https://example.com/weather")!

    URLSession.shared.dataTask(with: url) { data, response, error in
        // 通信処理はバックグラウンドで実行される

        DispatchQueue.main.async {
            // UI更新はMainスレッドで!
            self.weatherLabel.text = "今日の天気:晴れ"
            self.weatherImageView.image = UIImage(named: "sunny")
        }

    }.resume()
}

ポイントは、通信処理の後に必ず DispatchQueue.main.async を使うことです。


❗ 注意ポイントまとめ

  • Mainスレッドで重たい処理を行うと、アプリが固まる
  • BackgroundスレッドでUIを変更すると、クラッシュすることがある
  • DispatchQueue.main.async を使ってUIを更新しよう

📝 まとめ

  • マルチスレッドとは「複数の処理ライン」で効率よくアプリを動かす仕組み
  • UIはMainスレッド、重たい処理はBackgroundスレッドで!
  • Swiftの DispatchQueue を使えば、簡単にスレッドを切り替えられる
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?