マルチスレッドとは?まるちすれっど
マルチスレッドとは、1プロセス内に複数の実行の流れを持たせる方式。方式設計では、要求ごとに1スレッドを割り当てる素直な作りを取るか、イベント駆動の非同期I/Oを取るかの分岐点になる。前者は処理を逐次的に書けて読みやすい代わりにスレッド数ぶんのスタックと文脈切替えを払い、後者は少ないスレッドで多重度を稼げる代わりに処理の記述が分断される。
最終更新:2026-10-06
システムアーキテクトを最短で暗記・合格する →背景
プロセスの生成と切替えは重く、接続ごとにプロセスを立てる作りでは同時接続数を上げたときにメモリと切替え負荷が先に限界に達した。スレッドは同じメモリ空間を共有することでその代償を下げるが、共有した瞬間に排他制御と競合状態という別の負担を引き受ける。SAでは性能要件(同時実行数・応答時間)から多重化の方式を逆算する場面で問われ、「速くしたいから」ではなく「どの資源が待ちを作っているか」で選ぶ必要がある。
具体例
Apache HTTP Server の prefork/worker と nginx のイベント駆動は同じ問題への別解で、Tomcat はスレッドプール、Node.js は単一スレッドのイベントループを採る。同時接続が多く1件あたりの処理が軽いほど後者が有利になる。
試験での引っ掛け
スレッド化は多重度を上げる手段であって高速化の保証ではない。CPU律速の処理をコア数以上に多重化すると文脈切替えのぶん遅くなり、待ち時間律速の処理でだけ効く。メモリ空間を共有するのはスレッド側なので、1つの異常終了がプロセス全体を巻き込む。並行(時分割で交互)と並列(複数コアで同時)も別概念。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。