パソコンやスマホは、たくさんの処理を同時に進めているように見えます。それを支えるのがプロセスとスレッドという2つの単位です。
初級の解説は準備中のため、初級の内容を表示しています。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
これは何をする係?
- プロセス — 実行中のプログラム1つ分です。アプリを起動すると、そのアプリ用のプロセスが生まれます。プロセスは自分専用のメモリ領域を持って動きます。
- スレッド — プロセスの中で並行して走る、作業の筋です。1つのプロセスの中に、複数のスレッドを持てます。
たとえるなら、1つの作業部屋(プロセス)の中で、複数の作業員(スレッド)が同時に働くイメージです。部屋がプロセス、そこで手分けして働く一人ひとりがスレッドです。
登場人物メモ:
- ※1 メモリ領域 — プログラムが計算に使う作業机のような場所
- ※2 並行 — いくつもの作業を、同時進行で進めること
仕事の流れ
- アプリを起動すると、そのアプリのプロセスが生まれる
- プロセスは自分専用のメモリ領域を割り当てられる
- プロセスの中で、必要に応じてスレッドが作られる
- 複数のスレッドが手分けして並行に働き、処理を進める
なぜ分けるの?
理由は、同時にいくつもの処理を進めたいからです。
たとえば動画アプリなら、「映像を表示する」「音を鳴らす」「操作を受け付ける」を同時に進めたい。1つの作業員が順番に全部やると、どれかで詰まると全体が止まります。複数の作業員(スレッド)で手分けすれば、1つが忙しくても他が動けます。
また、アプリごとに部屋(プロセス)を分けるのも大事です。部屋が分かれていれば、あるアプリが転んでも、隣のアプリの作業机を巻き込みにくくなります。
こうした部屋の割り当てや作業員の順番決めは、OSとアプリ の「世話役」であるOSが裏で管理しています。
⚠️ うまくいかないとき
- 1つのアプリが固まる — そのプロセスの作業が詰まり、応答しなくなる
- 作業員の取り合い — スレッドが増えすぎて、かえって切り替えに手間取る
- 同じ机を同時にいじる — 作業員たちが同じ場所を同時に書き換え、記録が壊れる
- 部屋を閉じ忘れる — 使い終わったプロセスが残り、メモリを無駄に占有する
中級では、「部屋(プロセス)を分ける安全さ」と「作業員(スレッド)が机を共有する速さ」のトレードオフを詳しく見ます。
関連する知識
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. 「スレッド」を一言でいうと?
問2. このユニットのたとえで、「作業部屋」と「作業員」は何を表す?
問3. アプリごとにプロセス(部屋)を分ける利点は?
問4. プロセスへのメモリ割り当てや、スレッドの順番決めを裏で管理しているのは?
問5. いくつもの作業を同時進行で進めることを、漢字2文字で何という?
問6. プログラムが計算に使う「作業机のような場所」を、カタカナで何という?
問7. 「プロセス」を一言でいうと?
問8. プロセスとスレッドの関係として正しいのは?