マルチスレッド 【multi-thread】
マルチスレッド機能を用いると、プログラムの実行時に必要に応じて複数の処理の流れを生み出し、異なる処理を並行して進めることができる。スレッドはプロセスのようにOS上で独立した処理単位ではなく、メモリなどの資源を共有して動作することが多い。
CPUやCPUコアが複数あるコンピュータでは同時に複数のスレッドを実行できるが、単一のプロセッサでもCPUの利用時間を細かく分割して順番に割り当てることでマルチスレッド処理を実現することができる。このようなスレッドの管理をプログラム内部のコードによって行なうものをユーザースレッド(user thread)、OSカーネルが行なうものをカーネルスレッド(kernel thread)という。
シングルスレッド (single thread)
並行して複数のプログラム流れが実行されるマルチスレッドと対比して、プログラムの処理の流れが一本のみである状態をシングルスレッド(single thread)ということがある。
並列処理などを行わず、単一の命令の流れを逐次的に実行していくことを指す。スレッドの単複の区別は個々のプログラムについてのもので、シングルスレッドであってもOSの制御によって他のプログラムと並列に実行(マルチタスク)されることはある。
コンピュータやマイクロプロセッサ(CPU/MPU)の性能を表す際に、処理の並列化を考慮せず単一の命令の流れを処理する速さのことを「シングルスレッド性能」ということがある。近年のプロセッサは構造の微細化や高クロック化が限界に近づいてシングルスレッド性能の伸びは停滞しつつあり、代わって並列化が急速に進んでいる。
(2018.8.11更新)