The four posts
01Basics
Threads, races, vocabulary
02Correctness
Locks, ownership, invariants
03Coordination
Queues, backpressure, async
04Scarcity
Semaphores, pools, budgets
- Concurrency basics — map of the family; start here if vocabulary is fuzzy.
- Correctness — don’t corrupt shared state; lock scope; happens-before intuition.
- Coordination — blocking queues, wait/notify, backpressure, async pipelines, bursts.
- Scarcity — semaphores, connection/GPU pools, memory/bandwidth budgets.
Decision tree — which post to open
Answer the first question that matches; open only that deep dive for today’s 35 minutes.
- Do I still confuse race vs deadlock vs starvation? → Basics.
- Is the bug “two threads broke my invariant”? → Correctness (parking last spot, seat hold, inventory transfer).
- Is the problem “work must move between threads / absorb bursts”? → Coordination (logger async sink, resize/email pipeline, actor mailbox).
- Is the problem “too many want a limited resource”? → Scarcity (DB pool, GPU slots, rate of admits into a critical section).
- Unsure? Correctness first. Coordination and scarcity are follow-up families — don’t mix both in one timed session.