スポンサーリンク

【応用情報技術者試験】プロセスとスレッドの違いをわかりやすく解説

はじめに

応用情報・基本情報で頻出なのが、

  • プロセス
  • スレッド

の違いです。

この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転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…

まずは無料でキャリア相談

コメント