1. ホーム
  2. language-agnostic

[解決済み】並行プログラミングと並列プログラミングの違いは何ですか?

2022-03-25 01:37:24

質問

並行プログラミングと並列プログラミングの違いは何ですか?googleで聞いてみたのですが、その違いを理解するのに役立つものが見つかりませんでした。両方の例を教えてください。

とりあえずこんな解説を見つけました。 http://www.linux-mag.com/id/7411 - しかし、"concurrency is a property of the program" vs "parallel execution is a property of the machine" では、私には十分ではありません - まだ、何が何であるかは言えません。

どうすればいい?

スレッドを使ったプログラム(並行プログラミング)の場合、マシンが複数のスレッドを扱えるかどうかに依存するため、必ずしもそのように実行される(並列実行)とは限りません。

以下は視覚的な例です。のスレッドは 非スレッド化 マシンを使用します。

        --  --  --
     /              \
>---- --  --  --  -- ---->>

のスレッド スレッド式 マシンを使用します。

     ------
    /      \
>-------------->>

ダッシュは実行されたコードを表します。見ての通り、どちらも分割して実行されますが、スレッドマシンは複数の別々の部分を一度に実行することができます。