問題 No.3983
1つのプロセス内に複数の実行の流れ(スレッド)を設け、それらを並行して実行させることによって、プログラム全体の処理効率を高める仕組みを指す用語はどれか。
【正解の解説】
マルチスレッド
これは料理人をイメージすると分かりやすいです。1人のシェフ(プロセス)の中に、何本もの手(スレッド)を生やして、野菜を切りながらスープを煮込むようなものです。作業員が部屋を共有したまま手分けして仕事をするため、連絡や道具の共有がスムーズになり、全体の作業効率が劇的に向上します。
スポンサーリンク
【その他の選択肢の解説】
マルチプロセッシング
マルチスレッドが「1人の中に複数の手を生やすこと」なのに対し、マルチプロセッシングは「そもそもシェフを何人も雇うこと」に相当します。ハードウェアレベルで複数の頭脳を動かす点と、1つのプログラム内の話を混同させないように注意してください。
マルチタスキング
マルチタスクは複数の異なるアプリケーションを同時に動かす大きな枠組みを指します。例えば、音楽を聴きながらブラウザで調べ物をする状態です。これに対しマルチスレッドは、その中の1つのアプリ内部の効率化の話なので、視点の大きさが異なります。
マルチプレクサ
名前に「マルチ」とついているためプログラムの機能と勘違いしやすいですが、これはネットワークやハードウェアの通信で使われる「合流道路」や「電車の線路のポイント切り替え」のような物理的な装置や技術の名前です。ソフトウェアの処理効率化とは全く関係ありません。