# プロセスとスレッド — 作業部屋と、その中で働く作業員

> レベル: 初級 ／ 対象: 大人
> 出典: Kotowary — https://kotowary.com/learn/units/process-and-thread?level=beginner&audience=adult
パソコンやスマホは、たくさんの処理を**同時に**進めているように見えます。それを支えるのが**プロセス**と**スレッド**という2つの単位です。

## これは何をする係？

- **プロセス** — **実行中のプログラム1つ分**です。アプリを起動すると、そのアプリ用のプロセスが生まれます。プロセスは**自分専用のメモリ領域**を持って動きます。
- **スレッド** — プロセスの**中で並行して走る、作業の筋**です。1つのプロセスの中に、複数のスレッドを持てます。

たとえるなら、**1つの作業部屋（プロセス）の中で、複数の作業員（スレッド）が同時に働く**イメージです。部屋がプロセス、そこで手分けして働く一人ひとりがスレッドです。

**登場人物メモ**:

- **※1 メモリ領域** — プログラムが計算に使う作業机のような場所
- **※2 並行** — いくつもの作業を、同時進行で進めること

## 仕事の流れ

1. アプリを起動すると、そのアプリの**プロセス**が生まれる
2. プロセスは**自分専用のメモリ領域**を割り当てられる
3. プロセスの中で、必要に応じて**スレッド**が作られる
4. 複数のスレッドが**手分けして並行**に働き、処理を進める

## なぜ分けるの？

理由は、**同時にいくつもの処理を進めたいから**です。

たとえば動画アプリなら、「映像を表示する」「音を鳴らす」「操作を受け付ける」を同時に進めたい。1つの作業員が順番に全部やると、どれかで詰まると全体が止まります。**複数の作業員（スレッド）で手分け**すれば、1つが忙しくても他が動けます。

また、アプリごとに**部屋（プロセス）を分ける**のも大事です。部屋が分かれていれば、あるアプリが転んでも、隣のアプリの作業机を巻き込みにくくなります。

こうした部屋の割り当てや作業員の順番決めは、[OSとアプリ](/learn/units/software-os) の「世話役」であるOSが裏で管理しています。

## ⚠️ うまくいかないとき

- **1つのアプリが固まる** — そのプロセスの作業が詰まり、応答しなくなる
- **作業員の取り合い** — スレッドが増えすぎて、かえって切り替えに手間取る
- **同じ机を同時にいじる** — 作業員たちが同じ場所を同時に書き換え、記録が壊れる
- **部屋を閉じ忘れる** — 使い終わったプロセスが残り、メモリを無駄に占有する

中級では、「部屋（プロセス）を分ける安全さ」と「作業員（スレッド）が机を共有する速さ」の**トレードオフ**を詳しく見ます。
