👻

逐次処理・並行処理・並列処理の意味を理解し使い分けよう

2023/02/15に公開1

概要

逐次処理・並行処理・並列処理の違いをおさえる

逐次処理

  • タスク1が完了したら,タスク2に取り掛かる
  • シングルコア・シングルスレッドで処理をする時

並行処理

  • タスク1とタスク2を交互に進める(ある瞬間では,どちらか一方のみ進行中
  • シングルコア・マルチスレッドで処理をする時

並列処理

  • タスク1とタスク2を同時に進める
  • マルチコア・マルチプロセスで処理をする時

参考記事

Discussion

NoboNoboNoboNobo

「並行処理」は誤解されやすいですがもっと広義で同時に処理したいものを指します。
(挙げておられる参考記事のほうも「並列処理は、並行処理に内包される概念です。」と注意書きされています。)
イメージとしては「並行処理」という大枠に「並列処理」と「not並列処理」が含まれている感じ。
別の参考記事:
https://zenn.dev/koron/articles/3ddcaaeae37f9befdf70

具体的な話をすると「並行処理=同時にメモリアクセスすることが無いはずだから排他処理不要」って考えていると並列処理に落とし込まれる処理系(例えばGo)で痛い目を見ちゃう。