🚀 はじめに
スマホで音楽を聴きながらSNSを見る、パソコンで動画を再生しつつ文字を入力する。
私たちは普段、「いくつものことが同時に起きている」ように感じています。
この記事でわかること
- スレッドとプロセスがそもそも何なのか
- なぜアプリは同時に動いているように見えるのか
- 難しい数式や専門用語なしで、イメージとして理解できること
✅ 概要解説
スレッドとプロセスとは何か
まずは超ざっくり一言で。
- プロセス:
👉 アプリ1つ分の「作業場」 - スレッド:
👉 その作業場の中で動く「作業員」
たとえば「ゲームアプリ」を起動すると、
- ゲームアプリ全体=1つのプロセス
- 音楽担当・画面更新担当・通信担当=複数のスレッド
という関係になります。
何のためにあるのか
もし、1人で全部の仕事を順番にやるとしたらどうでしょう?
- 画面を描く
- 音を鳴らす
- データをネットから取ってくる
全部を1つずつやると、どこかで待ち時間が発生します。
そこで登場するのがスレッドです。
- 複数のスレッド → 役割分担
- 同時に進める → 止まっているように見えない
結果として、アプリがなめらかに動きます。
プロセスがないとどうなるのか
プロセスは「壁付きの作業場」です。
もし壁がなかったら…
- あるアプリが暴走
- 他のアプリのデータを壊す
- スマホやPC全体がフリーズ
そのためOS(Windows / macOS / Android / iOSなど)は、
- アプリごとにプロセスを分けて
- お互いに勝手に干渉できないようにしています
これが、アプリが落ちても他のアプリが無事な理由です。
スレッドがないとどうなるのか
スレッドが1本しかない世界では、
- 動画再生中 → 操作が効かない
- ダウンロード中 → 画面が固まる
という、昔のパソコンのような体験になります。
スレッドは「待ち時間を隠してくれる存在」
通信待ちをしている間に、別の作業が進むことで
私たちは“サクサク”と感じるのです。
身近なたとえで一気に理解!
| たとえ | プロセス | スレッド |
|---|---|---|
| 学校 | クラス | 生徒 |
| レストラン | お店 | 店員 |
| 工場 | 工場建屋 | 作業員 |
- プロセス=場所・枠組み
- スレッド=実際に動く人
この関係を覚えるだけでOKです。
💡 小話・豆知識・逸話
なぜ「同時」に見えるの?
実は、CPUが1個しかない場合でも
本当の同時ではありません。
- Aの作業を0.001秒
- Bの作業を0.001秒
- Cの作業を0.001秒
というように、超高速で切り替えているだけです。
人間の目と脳は追いつけないため、
「同時に動いている」と感じます。
マルチコアCPUだと?
最近のCPUは、
- 4コア
- 8コア
- 16コア
など、作業台が複数あります。
そのためスレッドは、
- 本当に同時に
- 別々のコアで
走ることもあります。
プログラマーが困る「こわい話」
スレッドは便利ですが、
同じデータを同時に触ると壊れる
ことがあります。
これを競合(きょうごう) と呼びます。
初心者のうちは
「そういう難しさもあるんだな」
と知っておくだけで十分です 👍
📚 参考リンク
公式・標準的な情報
- Wikipedia(日本語):プロセス
https://ja.wikipedia.org/wiki/プロセス_(コンピュータ) - Wikipedia(日本語):スレッド
https://ja.wikipedia.org/wiki/スレッド
OS・技術解説
- Microsoft Learn:プロセスとスレッド
https://learn.microsoft.com/ja-jp/windows/win32/procthread/processes-and-threads - Oracle Java Docs:プロセスとスレッドの概要
https://docs.oracle.com/javase/tutorial/essential/concurrency/
🛠️ 関連テーマ・次に理解すると良いこと
- OS(オペレーティングシステム)とは何か
- CPU・メモリ・ストレージの役割
- 並列処理と並行処理の違い
- シングルスレッド / マルチスレッド
- 非同期処理(async / await)
🎯 まとめ
- プロセス=アプリ1つ分の「作業場」
- スレッド=作業場の中で動く「作業員」
- プロセスは安全のための壁
- スレッドはなめらかな動きの秘密
- 難しく考えず、たとえで理解すればOK
