Concurrency (Language Internals)¶
The language-level substrate that makes concurrent code possible — threading models, primitives, and the pathologies that come with them. The two adjacent sub-sections — Async Programming and Parallel Programming — build on this foundation but tackle different problem shapes (non-blocking I/O vs CPU-bound work). Specific language tracks (Go goroutines, Java threads, Python asyncio, etc.) build on all three in languages/.
Content under this section is being filled in. Sub-sections already laid out are listed below; deeper pages will fill in as the Roadmap grows.
Sub-sections¶
- 01 — Models — preemptive vs cooperative, OS threads vs green threads / fibers / goroutines, actor model, CSP.
- 02 — Primitives — mutex, RWMutex, semaphores, barriers, atomics, channels, condition variables.
- 03 — Patterns — fan-in / fan-out, pipelines, worker pools, bounded concurrency, structured concurrency.
- 05 — Race Conditions — data races vs race conditions, the memory model, happens-before, race detectors.
- 06 — Deadlock Detection — lock ordering, cycle detection, timeouts, lock-free alternatives.
Async / await moved to its own sibling section: Async Programming.
Related¶
- Async Programming — event loops, coroutines, futures, runtimes (Tokio, libuv, asyncio).
- Parallel Programming — SIMD, work-stealing, fork-join, data parallelism.
- Memory Management — the model under which concurrent reads/writes interleave.
- Languages › Go › Concurrency — the most fleshed-out concrete track today.
- Quality Engineering › Performance — contention, scheduling, scaling limits.