The Go Blog
Concurrency is not parallelism
Andrew Gerrand
16 January 2013
If there’s one thing most people know about Go,is that it is designed for concurrency.No introduction to Go is complete without a demonstration of its goroutines and channels.
But when people hear the wordconcurrency they often think ofparallelism,a related but quite distinct concept.In programming, concurrency is thecomposition of independently executing processes,while parallelism is the simultaneousexecution of (possibly related) computations.Concurrency is aboutdealing with lots of things at once.Parallelism is aboutdoing lots of things at once.
To clear up this conflation, Rob Pike gave a talk atHeroku’sWaza conference entitledConcurrency is not parallelism,and a video recording of the talk was released a few months ago.
The slides are available atgo.dev/talks(use the left and right arrow keys to navigate).
To learn about Go’s concurrency primitives,watchGo concurrency patterns(slides).
Next article:go fmt your code
Previous article:The App Engine SDK and workspaces (GOPATH)
Blog Index
[8]ページ先頭