The Go Blog

並行性は並列性ではない

Andrew Gerrand
2013年1月16日

Goについて多くの人が知っていることが一つあるとすれば、それは並行性(concurrency)のために設計されているということです。Goの紹介は、そのゴルーチン(goroutine)とチャネル(channel)のデモンストレーションなしには完結しません。

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

この混同を解消するため、ロブ・パイクはHerokuのWazaカンファレンスで「並行性は並列性ではない」と題した講演を行い、その講演の録画は数ヶ月前に公開されました。

スライドはgo.dev/talksで入手できます(左右の矢印キーで操作してください)。

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

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