source: https://www.youtube.com/watch?v=cN_DpYBzKso
- the world is not object oriented, is actually parallel
- concurrency is dealing with a lot of things at once, parallel is doing a lot of things at once, one is about structure, the other is about execution.
- concurrency is a about by breaking down a program into pieces that can be executed independently.
- communication is the means to coordinate the independent executions.
- Paper Communicating Sequential Processes (1978)
- Paper Communicating Sequential Processes (2015)
- Performance improved by adding a concurrent procedure to a existing design.
- There many ways to beak the process down.
- That's concurrent design.
- Once we have the breakdown, parallelization can take in and correctness is easy.
- Goroutines: they're like threads, but they're much cheaper
- Goroutines are multiplexed onto OS threads as required
- When a goroutine blocks, that thread blocks but no other goroutine blocks.
- Goroutines vs green threads Goroutines vs Coroutines
- Concurrency is powerful.
- Concurrency is not parallelism.
- Concurrency enables parallelism.
- Concurrency makes parallelism easy.