blob: 19c7cb61b4baf5399740f698de3230c90a0361dd [file] [log] [blame]
Concurrency is not parallelism
16 Jan 2013
Tags: concurrency, talk, video
Andrew Gerrand
* Introduction
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.
.iframe // 281 500
The slides are available at [[][]] (use the left and right arrow keys to navigate).
To learn about Go's concurrency primitives, watch [[][Go concurrency patterns]] ([[][slides]]).