【8/27まで】Udemyの人気コースが今なら1,200円から!!

【プログラミング入門】並行と並列の違いを理解する

並列と平行の違い

プログラミング学習で躓くポイントの一つとして、「並列プログラミング」があります。
「並行」と「並列」は字面が似ているので、同じような意味…と思っていましたが実は違いました。

あるとき僕は気づいたんです。
仕事で進捗報告をするときに「案件Aと案件Bを並行して進めています。」とは言うけど
「案件Aと案件Bを並列して進めています。」とは言ってないということを。
ここにヒントがあったのです。

ということでこの記事では、上図を例に並行と並列の違いについて説明していこうと思います。

並行とは

並行とは英語でconcurrentといいます。
上図の左側は、リーマン君がタスク1とタスク2を交互に実行している様子です。
ある時点では1つの作業しかしていないが、タスク1とタスク2の作業を交互に進めることによって、2つのタスクが進行しているように見えています。
1日という単位の中では2つのタスクが論理的に同時に進行している状態と言えます。
これを並行といいます。

並列とは

並列とは英語でparallelといいます。
上図の右側は、リーマン君がタスク1を、OLちゃんがタスク2を実行している様子です。
どの時点においても、タスク1とタスク2が同時に進行していることになります。
1日という単位の中では2つのタスクが物理的に同時に進行している状態と言えます。
これを並列といいます。

終わりに

「並行」と「並列」、字面は似ていてもその概念は全く違っていたんですね。この概念を習得することが並列プログラミングの習得への第一歩といえます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です