Concurrency and Streaming in the Age of Loom
summary
Project Loom shifts servers back to an imperative blocking style by adding virtual threads while keeping scale; Java 26 previews include structured concurrency (lexical try-with-resources scopes, join semantics, default cancel-on-error) and examples show a 10s global timeout, scatter‑gather zip, and a paged fetch demo with range 10 and concurrency limited to 2 via a semaphore-backed thread factory (caution: semaphore after fork can spawn many virtual threads). Debugging surfaces nested parent/child exceptions; receiveNext iterator and channels (not specified yet) are explored for streaming; Spring Framework 7.1 experiments live on the linked GitHub repo.
AI-written summary · about
chapters (21)
- 0:00Introduction
- 1:29Java concurrency history
- 4:00Reactive programming evolution
- 6:06Spring reactive stack
- 8:55Reactive benefits and barriers
- 9:17Project Loom virtual threads
- 12:28Structured concurrency goals
- 15:19Structured vs Futures
- 17:06Scatter-gather pattern
- 21:41Timeout handling
- 24:56Throttling tasks
- 29:54Debugging exceptions
- 34:14Thread interrupts today
- 35:39Observability with scoped values
- 36:22Structured concurrency API
- 37:04Streaming challenges
- 41:15Iterator streaming design
- 43:23Producer-consumer streaming
- 46:52Channels interim solutions
- 47:58Spring 7.1 plans
- 48:18Closing and Q&A
related talks
47mConcurrent and Asynchronous Programming: Loom in Java 20 and 21
01h 00mProject Loom? Better Futures? What’s next for JVM concurrent programming
50mProject Loom: Helping Write Concurrent Applications on the Java Platform
39mProject Loom: Modern Scalable Concurrency for the Java Platform
32mProject Loom? Better Futures? What’s next for JVM concurrent programming
35mUntangled: Sneak peek at Project Loom
38mJava Project Loom: Why Should I Care?
51mWhat's Looming in Java The Why and What of Project Loom
