Goブログ

並行処理は並列処理ではない

Andrew Gerrand
2013年1月16日

多くの人がGoについて知っていることの1つは、それが並行処理向けに設計されているということです。Goの紹介では、ゴルーチンとチャネルのデモンストレーションが欠かせません。

しかし、人々は「並行処理」という言葉から、関連するがかなり異なる概念である「並列処理」を思い浮かべることがよくあります。プログラミングにおいて、並行処理とは、独立して実行されるプロセスの「合成」であり、一方、並列処理とは(関連している可能性のある)計算の同時「実行」です。並行処理は多くのことを一度に「処理する」ことに関わり、並列処理は多くのことを一度に「行う」ことに関わるのです。

この混同を解消するために、Rob PikeはHerokuのWazaカンファレンスで「並行処理は並列処理ではない」というタイトルの講演を行い、その講演のビデオ録画が数ヶ月前に公開されました。

スライドはgo.dev/talksでご覧いただけます(左右の矢印キーで移動します)。

Goの並行処理プリミティブについて学ぶには、Go並行処理パターンスライド)をご覧ください。

次の記事:go fmtによるコード整形
前の記事:App Engine SDKとワークスペース(GOPATH)
ブログインデックス