Synchronous vs Asynchronous vs Concurrent vs Parallel
What is the difference and why does it matter?
We developers like to throw around terms that feel natural to us, but are technical terms that most non-developers don’t use in the same way. This article is aimed at all the poor souls who have to deal with us, e.g. product managers, product owners, scrum masters, business people.
After reading this article, you will understand the difference between synchronous vs asynchronous vs concurrent vs parallel. Let’s start!
Speeding up Execution
If you want a program or website to feel faster, you have various options:
- Better machines: Buy new hardware
- Do less: Reduce the scope, simplify the business
- Do the things more efficiently: Better algorithms
- Do things in parallel: Make use of multiple CPU cores instead of just one
- Avoid waiting times
Especially the last point is interesting. Think about baking a cake. My oven takes about 15 minutes until it is at 200°C. It takes me about 25 minutes to prepare the cake and it needs to stay for 20 minutes in the oven. How long does it take to make the cake?