Async, concurrency, and parallelism answer different questions. Async is about avoiding a block while waiting for I/O. Concurrency is about letting independent operations make progress over the same period. Parallelism is about running CPU-bound calculations at the same time on different cores.
Two downloads can overlap without using two CPU cores. Two image-processing jobs can use multiple cores without any network wait. The distinction matters because the right tool depends on where the time goes.
Start with the bottleneck: use async for external waits, concurrency when independent waits can overlap, and parallelism when measurement shows CPU work is the problem. Keep small local work simple.
Top comments (0)