18/18
- Concurrency 6 minActors
One owner per piece of state, reachable only by message — and what that buys you across a network.
- Concurrency 6 minAmdahl's Law
The part you cannot parallelise sets a ceiling — and it is lower than you think.
- Concurrency 6 minAtomics
Indivisible operations in hardware — and the loop that turns one into any update you like.
- Concurrency 5 minCondition Variables
Waiting for a state, not a lock — and why the check has to be a while loop.
- Concurrency 6 minCSP and Channels
Don't communicate by sharing memory; share memory by communicating.
- Concurrency 6 minDeadlock
Four conditions, all required — so breaking any one of them is a complete fix.
- Concurrency 7 minEvent Loops
One thread, no blocking — and the queue ordering that decides what actually runs next.
- Concurrency 6 minHappens-Before
The relation that decides what one thread is allowed to see of another.
- Concurrency 6 minLock-Free Structures
Progress guarantees, and the memory-reclamation problem that makes them hard.
- Concurrency 6 minMemory Models
What the hardware and the compiler are allowed to reorder — and why x86 lets bad code pass.
- Concurrency 7 minMutexes and Locks
One holder at a time — and why the lost update happens on the line you thought was atomic.
- Concurrency 6 minRead-Copy-Update
Readers pay nothing at all — and the writer waits for them to leave before freeing anything.
- Concurrency 5 minSemaphores
A counter with a queue attached — and why it is not a mutex with extra steps.
- Concurrency 6 minStructured Concurrency
Tasks that cannot outlive the block that started them — goto, but for threads.
- Concurrency 6 minThread Pools
Reuse the workers, queue the work — and the two questions that decide the size.
- Concurrency 5 minThreads and Processes
What is shared decides everything else — cost, safety, and how a crash spreads.
- Concurrency 6 minWork Stealing
Idle workers take from the busy — and the end of the deque they take from is the whole trick.
Coverage
18 of 18 topics- Threads and processes ↗
- Mutexes and locks ↗
- Deadlock ↗
- Semaphores ↗
- Condition variables ↗
- Atomics ↗
- Memory models ↗
- Happens-before ↗
- False sharing ↗
- Lock-free structures ↗
- Read-copy-update ↗
- Thread pools ↗
- Work stealing ↗
- Actors ↗
- CSP and channels ↗
- Event loops and async/await ↗
- Structured concurrency ↗
- Amdahl's law ↗