はじめに
応用情報・基本情報で頻出なのが、
- プロセス
- スレッド
の違いです。
この2つはかなり似ているため、試験ではよく比較問題として出題されます。
ただ、イメージで理解すると一気に覚えやすくなります。
まず結論
| 項目 | プロセス | スレッド |
|---|---|---|
| 意味 | 実行中のプログラム | プロセス内の処理単位 |
| メモリ | 基本別々 | 共有 |
| 動作の重さ | 重い | 軽い |
| 独立性 | 高い | 低い |
| 例 | Chrome、Excel | タブ処理、裏処理 |
プロセスとは?
定義
実行中のプログラムのこと。
例えば:
- ブラウザを起動
- Excelを起動
- ゲームを起動
これらはそれぞれ独立したプロセス。
イメージ
「会社」だと思うとわかりやすい
- プロセス = 会社
- スレッド = 社員
会社ごとに、
- 部屋
- 資料
- 予算
を持っている。
つまり独立性が高い。
プロセスの特徴
① 独立している
各プロセスは別メモリ空間を持つ。
つまり、
- Chromeが落ちても
- Excelには影響しにくい
② 安全性が高い
他プロセスへ影響しづらい。
OSが分離管理しているため。
③ 作成コストが高い
メモリ確保などが必要。
つまり「重い」。
スレッドとは?
定義
プロセス内で実際に処理を行う実行単位。
イメージ
「社員」
会社(プロセス)の中で、
複数の社員(スレッド)が働く。
例えばブラウザ
Chromeでは、
- タブ表示
- 動画再生
- ダウンロード
- JavaScript実行
などを別スレッドで処理している。
だから同時並行っぽく動ける。
スレッドの特徴
① メモリ共有
同じプロセス内なので、
メモリを共有する。
つまり高速。
② 軽量
プロセス作成ほど負荷がない。
③ 影響し合う
1つのスレッド暴走で、
同プロセス全体が不安定になることもある。
図で理解
【プロセスA】
├ スレッド1
├ スレッド2
└ スレッド3
【プロセスB】
├ スレッド1
└ スレッド2
メモリの違い
プロセス
別々。
プロセスA → メモリA
プロセスB → メモリB
スレッド
共有。
スレッド1 ┐
スレッド2 ├→ 同じメモリ
スレッド3 ┘
試験超頻出ポイント
「スレッドは何を共有する?」
→ メモリ空間
「プロセス間は独立?」
→ 独立している
「スレッドは軽量?」
→ YES
マルチスレッドとは?
1つのプロセス内で、
複数スレッドを同時実行すること。
例
ゲームなら:
- 描画
- 音楽
- 通信
- 入力受付
を並列処理。
シングルスレッドの問題
1処理しかできない。
例えば:
重い処理中
↓
画面フリーズ
マルチプロセスとの違い
マルチプロセス
- 安全
- 重い
マルチスレッド
- 高速
- 軽い
- 同時実行向き
試験で狙われる比較
| 比較 | 正解ポイント |
|---|---|
| プロセス | 独立 |
| スレッド | メモリ共有 |
| スレッド | 軽量 |
| プロセス | 作成コスト高 |
| スレッド | 同時処理向き |
よくある引っかけ
「スレッドは独立したメモリを持つ」
→ ×
共有する。
「プロセスは軽量」
→ ×
重い。
「スレッドは別プログラム」
→ ×
同一プロセス内。
実務でのイメージ
Webブラウザ
- タブごとにプロセス
- タブ内で複数スレッド
最近のChrome系はこの構成が多い。
ゲーム
- 描画スレッド
- 通信スレッド
- 音声スレッド
などで高速化。
覚え方
プロセス
「独立した会社」
スレッド
「会社内の社員」
試験直前まとめ
- プロセス = 実行中プログラム
- スレッド = 処理単位
- プロセスは独立
- スレッドはメモリ共有
- スレッドは軽量
- マルチスレッドで並列処理
- 安全性はプロセスの方が高い
ここはOS分野の超重要テーマなので、確実に得点したいところです。
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント