Member-only story
No BS guide to Concurrency and parallelism
Not a member? You can read here.
“Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” — Rob Pike
Concurrency and parallelism are two related but distinct concepts.
Concurrency (a.k.a Product Manager)
Concurrency refers to the ability of a system to handle multiple tasks or processes that are in progress at the same time, but not necessarily executing simultaneously.
In the below, fun pic by chatGPT, a single Ticket Collector is handling multiple people, this represents concurrency.
Key aspects of concurrency include:
- Multiple tasks can start, run, and complete in overlapping time periods
- Dealing with many things at once, but not doing them at the exact same time
- Can be achieved on a single processor through context switching
- It’s primarily a way to structure a program to handle multiple tasks efficiently
Parallelism
(a.k.a Senior+ Engineer working on multiple projects in same iteration :P )