並列と並行の違い

並列(parallel) と 並行(concurrent)

『並行コンピューティング技法』より。

並行とは

システムが複数の動作を同時に実行状態に保てる機能を備えている場合

つまり、実際はシングルコアのCPUでマルチタスクの状態で複数のスレッドを順次切り替えているような状態でも、
複数のスレッドが実行状態になっていてそれを保持してるならそれは「並行」といえるということ。

並列とは

複数の動作を同時に実行できる場合

つまり、並列実行ではシステムにマルチプロセッサが必須。
実行状態ではなくまさに実行することができること。

並行は並列を包含する。

この本を読んでてなんか今までもやもやしている部分がスッキリしていきます。
面白い。

iti