Month 4 - Concurrency & Project Loom (Weeks 13–16)¶
Java's concurrency story has two eras: pre-Loom (Thread, synchronized, ExecutorService, CompletableFuture, reactive frameworks like RxJava/Reactor) and post-Loom (virtual threads, structured concurrency, scoped values). You must be fluent in both - because every production codebase is somewhere on the transition.
Weeks¶
- Week 13 - The Java Memory Model and
java.util.concurrentFoundations - Week 14 - Executors,
CompletableFuture, and the Pre-Loom World - Week 15 - Virtual Threads, Structured Concurrency, and Scoped Values
- Week 16 - Lock-Free Patterns,
VarHandleMemory Modes, andjcstress
Month 4 Exit Criteria¶
You can:
- Reason about visibility and ordering from first principles using happens-before.
- Pick the right concurrency primitive ({synchronized, ReentrantLock, VarHandle, virtual thread, structured scope}) for a given problem.
- Migrate a CompletableFuture or Reactor chain to virtual threads + structured concurrency, and explain when not to.
- Validate a concurrent data structure with jcstress.
- Diagnose pinning, contention, and starvation from JFR.
You are now ready for Month 5 - production and distributed systems.