Christian Woerz

Java 21: The Revolution of Virtual Threads - A Deep Dive

What if your simple, blocking code could handle millions of requests? See how virtual threads deliver massive scalability without the complexity of reactive programming.

Java 21: The Revolution of Virtual Threads - A Deep Dive
#1about 6 minutes

Building a traditional blocking web application

A live coding demonstration shows how to build a standard blocking API with Spring Boot and how its performance degrades under load.

#2about 5 minutes

Understanding the limitations of platform threads

Creating thousands of traditional platform threads demonstrates their high memory consumption, 1:1 mapping to OS threads, and eventual OutOfMemoryError.

#3about 12 minutes

Improving performance with a reactive approach

Refactoring the blocking API to use asynchronous programming with CompletableFuture solves the performance bottleneck but introduces significant code complexity.

#4about 7 minutes

How virtual threads solve the concurrency problem

Virtual threads are lightweight, JVM-managed threads that run on a small pool of carrier threads, enabling millions of concurrent tasks without high memory overhead.

#5about 4 minutes

Enabling virtual threads in a Spring Boot application

A single configuration flag in Spring Boot 3.2 is all that's needed to switch the application to use virtual threads for handling requests.

#6about 8 minutes

Managing parallel tasks with structured concurrency

StructuredTaskScope provides a modern API to run multiple blocking operations concurrently in separate virtual threads, simplifying parallel code.

#7about 4 minutes

Understanding the limitations of virtual threads

Virtual threads can be "pinned" to their carrier thread by synchronized blocks, native calls, or CPU-intensive tasks, which negates their benefits.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles

From learning to earning

Jobs that call for the skills explored in this talk.