Concurrency vs Parallelism (and why you're confused)
Concurrency is about how a program is structured. Parallelism is about how a program runs. Mixing them up doesn’t make you clever.
Concurrency and parallelism are not the same thing, and pretending they are is how people end up with the wrong mental model of how programs actually run.
1. Concurrency (Structure)
Concurrency is about how a program is structured. It means that multiple tasks are in progress simultaneously, even if the CPU is only executing one instruction at any given moment.
On a single-core machine, the OS keeps switching between tasks so fast (time slicing) that everything *looks* like it’s running together. Nothing magical is happening. This is why concurrency works even without multiple cores.
2. Parallelism (Execution)
Parallelism is different. Parallelism is when multiple tasks are literally executing at the same time on different CPU cores.
If two computations are running simultaneously—not switching, not waiting—that’s parallelism. You don’t get this without hardware support. No amount of clever code can make one core do two things at once.
The Confusion
The confusion comes from the fact that parallel programs are usually concurrent, but concurrent programs are very often not parallel.
Most servers, async systems, and event loops are concurrent because they’re mostly waiting on I/O, not burning CPU. Adding more threads there doesn’t make them faster; it just adds overhead. Parallelism only helps when the work is actually CPU-bound and can be split into independent pieces.
If you think concurrency equals speed, you’ll design bad systems.
* Concurrency helps you stay responsive and handle many things without blocking.
* Parallelism helps you finish heavy computation sooner.
One is about coordination, the other is about execution.
Visualizing Probability: Random Walk in C
→I’ve been building a random-walk simulation in C using SDL, mostly to understand what actually happens when you let simple rules run over time.
How a Simple Ray Tracer in C Works: From Math to Shadows
→At the heart of ray tracing lies a deceptively simple idea: light travels in straight lines until something blocks it.

