LearnThatStack Ace your next interview
Concurrency & Multithreading · question
Question 1 of 54

What is the difference between concurrency and parallelism?

beginner
← All Concurrency & Multithreading questions
Re-explain
Visual ↓

Concurrency means structuring a program so many tasks make progress in overlapping time windows. Parallelism means literally running tasks at the same instant on separate cores. A single-core machine can be concurrent but never truly parallel.

A concurrent design interleaves tasks by pausing one and resuming another. This helps when tasks wait on input, network, or disk. Parallelism helps when you have real compute to split across cores.

You can have either without the other. A single-threaded event loop is concurrent, not parallel. A numeric loop spread across eight cores is parallel. Most real systems mix both.

Reach for concurrency when tasks mostly wait, and parallelism when tasks mostly compute. Confusing them leads to adding cores that never help, or adding threads to work that has no waiting to overlap.

Rewriting in plainer words…

This answer doesn't lend itself to a diagram - it reads best . No credits were charged.

Why there's no diagram: “”

The interactive diagram is below the answer - jump to diagram ↓ · Below it, the related concept . Jump to it ↓

The diagram below the answer is the concept . Jump to it ↓

Tailored explanation · switch back to · ·
What should the new diagram focus on?
Guided practice for Concurrency & Multithreading One question at a time. Answer out loud, get graded, see what you missed.
See it - interactive diagram
Concurrency on one core vs parallelism on two cores
Single core
A
B
A
B
A
B
Core 1 of 2
A
Core 2 of 2
B
Two cores finish
Single core finishes
0123456
  • Single core: A - Task A gets the only core for one short slice of time.
  • Core 1 of 2: A - Task A has its own core and never has to pause.
  • Core 2 of 2: B - B runs at the same instant as A, which is parallelism.
  • Single core: B - A pauses, and task B takes its turn on the same core.
  • Single core: A - A resumes where it stopped, and now B pauses.
  • Two cores finish - Both tasks ran side by side, so the work took half as long.
  • Single core: B - Only one task runs at any given moment.
  • Single core: A - Both tasks keep making progress, which is concurrency.
  • Single core finishes - Taking turns adds no speed when neither task waits.

One core takes turns between tasks, which is concurrency. Two cores run both tasks at the same instant, which is parallelism.

© LearnThatStack - diagrams may not be republished without permission.

Other questions have diagrams like this too. Sign in to ask for one where it's missing - it's free.

Create a free account
How well did you know this?
AI:

Saved in this browser - sign in to keep your review list.

How should your speech become text?

Listening… your words appear above as you speak - tap Stop when you're done.

Recording · cr - tap Stop & transcribe when you're done.

Transcribing with AI…

Voice:

Keep going - a few more words and AI can grade it.

Interview lens How interviewers actually use this question

Likely follow-ups

What you can say

  1. Concurrency means many tasks make progress in overlapping time windows, and parallelism means tasks actually run at the same instant on separate cores.
  2. A concurrent design interleaves work by pausing one task and resuming another, so a single-core machine can be concurrent but never truly parallel.
  3. That interleaving pays off when tasks spend their time waiting on the network, the disk or user input, because another task runs during the wait.
  4. Parallelism pays off when there's real computation to split, like a numeric loop spread across eight cores.
  5. You can have either one without the other, since a single-threaded event loop is concurrent but not parallel, and most real systems mix both.
  6. So I reach for concurrency when tasks mostly wait and parallelism when they mostly compute, because mixing them up means adding cores that never help or threads with nothing to overlap.

Weak answers to avoid

  • Says concurrency just means multithreading An event loop is concurrent on one thread, and threads on one core are not parallel. Define concurrency by overlapping progress, not by thread count.
  • Treats the two words as synonyms The question is about the difference. Concurrency is how you structure tasks to overlap in time, and parallelism is running them at the same instant on separate cores.
  • Never says when to use which Definitions alone are thin. Tie concurrency to work that waits on I/O and parallelism to compute you can split, then say what goes wrong when you mix them up.
  • Claims more threads always make it faster Threads help only when there is waiting to overlap or idle cores to fill. CPU-bound threads on one core add switching cost and no speed.
Interview lens

Likely follow-ups, what you can say, and the weak answers to avoid.

Sign in free to open it Free account - the lens opens as soon as you're back.

Want a quick review of the fundamentals? See the Concurrency & Multithreading cheatsheet.

← Back to all Concurrency & Multithreading questions
Pro · $10/mo

47 of 54 Concurrency & Multithreading answers are in Pro.

Full answers, code samples, and AI explanations that go simpler or deeper. Cancel anytime.

  • Full answers + code
  • AI explanations, simpler or deeper
  • 1,000 AI credits / month
  • Cancel anytime