Goブログ
並行処理は並列処理ではない
多くの人がGoについて知っていることの1つは、それが並行処理向けに設計されているということです。Goの紹介では、ゴルーチンとチャネルのデモンストレーションが欠かせません。
しかし、人々は「並行処理」という言葉から、関連するがかなり異なる概念である「並列処理」を思い浮かべることがよくあります。プログラミングにおいて、並行処理とは、独立して実行されるプロセスの「合成」であり、一方、並列処理とは(関連している可能性のある)計算の同時「実行」です。並行処理は多くのことを一度に「処理する」ことに関わり、並列処理は多くのことを一度に「行う」ことに関わるのです。
この混同を解消するために、Rob PikeはHerokuのWazaカンファレンスで「並行処理は並列処理ではない」というタイトルの講演を行い、その講演のビデオ録画が数ヶ月前に公開されました。
スライドはgo.dev/talksでご覧いただけます(左右の矢印キーで移動します)。
Goの並行処理プリミティブについて学ぶには、Go並行処理パターン(スライド)をご覧ください。