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

初級の解説は準備中のため、初級の内容を表示しています。

概要 — まず全体をつかむ

パソコンやスマホは、たくさんの処理を同時に進めているように見えます。それを支えるのがプロセススレッドという2つの単位です。

詳細 — 1段階ずつ追う

これは何をする係?

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

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

登場人物メモ:

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

仕事の流れ

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

なぜ分けるの?

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

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

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

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

⚠️ うまくいかないとき

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

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

関連する知識

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. 「スレッド」を一言でいうと?

2. このユニットのたとえで、「作業部屋」と「作業員」は何を表す?

3. アプリごとにプロセス(部屋)を分ける利点は?

4. プロセスへのメモリ割り当てや、スレッドの順番決めを裏で管理しているのは?

5. いくつもの作業を同時進行で進めることを、漢字2文字で何という?

6. プログラムが計算に使う「作業机のような場所」を、カタカナで何という?

7. 「プロセス」を一言でいうと?

8. プロセスとスレッドの関係として正しいのは?