Untangled: Sneak peek at Project Loom
summary
Project Loom brings continuations and lightweight threads (fibers) into the JVM so synchronous-looking code runs without tying up kernel threads. Experiments compare four implementations: blocking sockets spawn ~400 threads for 200 clients; async NIO handles 200 clients with ~10 threads; Reactor+Netty uses 12 threads; the Loom prototype runs 200 clients on 12 threads by parking continuations and resuming them on I/O. It works but forbids blocking syscalls and synchronized on fibers; see JDK 14 EA loom branch and Quasar/Casa.
AI-written summary · about
chapters (39)
- 0:00Introduction
- 0:36Project Loom
- 1:27Use case
- 2:36First implementation
- 3:43CPU utilization
- 3:57Thread creation
- 4:30Visual DVM
- 4:59Thread dumb
- 5:13System call
- 6:01Blocking calls
- 6:15Context switch
- 7:06IANA scheduler
- 8:04TCP connections open
- 9:03Second implementation
- 11:28Threads
- 12:19Service Threads
- 12:37SocketChannel API
- 13:21asynchronous circuits channel
- 13:55promote efficiency
- 14:25asynchronous calls
- 14:43asynchronous implementation
- 15:04evenloop
- 15:24Nettie
- 15:48Reactive streams
- 16:56Atomic references
- 18:31User threads
- 19:08continuations
- 20:08asynchronous programming
- 20:32continuation as runnable
- 22:22continuation as state machine
- 22:55iterator as state machine
- 25:38continuation as lightweight thread scheduler
- 26:21nonblocking
- 27:28scheduler threads
- 28:25play with continuations
- 29:20cosa
- 32:23automatic tail call optimization
- 33:00structured concurrency
- 34:12References
related talks
29mUntangled: Sneak peek at Project Loom
54mLooming in the cores
42mProject Loom Update
53mFruits of the Loom – Lightweight Concurrency For the Java Platform
51mWhat's Looming in Java The Why and What of Project Loom
44mLoom: Revolution or Implementation Detail?
50mProject Loom: Helping Write Concurrent Applications on the Java Platform
01h 01mProject Loom: Revolution in Concurrency or Obscure Implementation Detail?
