Go 博客
Concurrency is not parallelism
2013/01/16
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 word concurrency they often think of parallelism, a related but quite distinct concept. In programming, concurrency is the composition of independently executing processes, while parallelism is the simultaneous execution of (possibly related) computations. Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.
To clear up this conflation, Rob Pike gave a talk at Heroku's Waza conference entitled Concurrency is not parallelism, and a video recording of the talk was released a few months ago.
The slides are available at talks.golang.org (use the left and right arrow keys to navigate).
To learn about Go's concurrency primitives, watch Go concurrency patterns (slides).
相关文章
- Go 2 Draft Designs
- Go Concurrency Patterns: Context
- Go Concurrency Patterns: Pipelines and cancellation
- Go talks at FOSDEM 2014
- Introducing the Go Race Detector
- Advanced Go Concurrency Patterns
- The path to Go 1
- Two recent Go articles
- Get thee to a Go meetup
- Two recent Go talks
- Go videos from Google I/O 2012
- Two Go Talks: "Lexical Scanning in Go" and "Cuddle: an App Engine Demo"
- Go at Google I/O 2011: videos
- Go Concurrency Patterns: Timing out, moving on
- Share Memory By Communicating
- Go Programming session video from Google I/O