David Vlijmincx
Introduction and pitfalls of Java's new concurrency model
#1about 7 minutes
Understanding Java's traditional platform threads
Traditional platform threads are resource-intensive because they map directly to OS threads, leading to memory limitations and the need for pooling with executor services.
#2about 2 minutes
Introducing lightweight virtual threads in Java 21
Virtual threads are a lightweight, JVM-managed alternative to platform threads that avoid expensive OS calls and use resizable heap memory for their stacks.
#3about 2 minutes
Comparing memory usage of platform vs virtual threads
A comparison shows that while memory usage is similar for a small number of threads, virtual threads use significantly less memory at scale, avoiding out-of-memory errors.
#4about 5 minutes
How to create and manage virtual threads
Virtual threads can be created using the Thread.startVirtualThread() static method, a builder pattern, or the new newVirtualThreadPerTaskExecutor which simplifies lifetime management.
#5about 5 minutes
How virtual threads work with carrier threads
Virtual threads run on a pool of platform threads called carrier threads, and are mounted or unmounted during blocking operations to keep the carrier threads busy.
#6about 2 minutes
Common pitfalls when using virtual threads
Avoid common pitfalls such as expecting faster single-thread performance, using them for long-running CPU-bound tasks, or pooling them, as they are designed to be cheap and disposable.
#7about 6 minutes
The problem structured concurrency solves
Unlike unstructured concurrency which can lead to leaked threads and wasted resources, structured concurrency ensures the lifetime of child threads is confined to a specific code block.
#8about 4 minutes
Implementing a race policy with ShutdownOnSuccess
The ShutdownOnSuccess policy in StructuredTaskScope is used to race multiple tasks and retrieve the result of the first one that completes successfully, canceling the others.
#9about 3 minutes
Implementing an all-or-nothing policy with ShutdownOnFailure
The ShutdownOnFailure policy ensures that all forked tasks must complete successfully; if any task fails, all other running tasks are immediately canceled.
#10about 6 minutes
Creating a custom structured task scope policy
Developers can extend StructuredTaskScope and override the handleComplete method to implement custom shutdown logic based on specific business criteria from task results.
#11about 1 minute
Key takeaways for adopting virtual threads
To get started, developers primarily need to use Thread.startVirtualThread() for single tasks or the newVirtualThreadPerTaskExecutor for managing multiple tasks.
#12about 9 minutes
Q&A on virtual threads, reactive programming, and Java 21
The speaker answers audience questions about replacing Project Reactor, migrating existing applications, using thread-locals, and other new features in Java 21.
Related jobs
Jobs that call for the skills explored in this talk.
Wilken GmbH
Ulm, Germany
Remote
Senior
Java
Docker
+3
Matching moments
03:07 MIN
Final advice for developers adapting to AI
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
01:32 MIN
Organizing a developer conference for 15,000 attendees
Cat Herding with Lions and Tigers - Christian Heilmann
02:33 MIN
Why you might not need JavaScript for everything
WeAreDevelopers LIVE – You Don’t Need JavaScript, Modern CSS and More
11:32 MIN
The industry's focus on frameworks over web fundamentals
WeAreDevelopers LIVE – Frontend Inspirations, Web Standards and more
09:10 MIN
How AI is changing the freelance developer experience
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
08:07 MIN
Exploring modern JavaScript performance and new CSS features
WeAreDevelopers LIVE – AI, Freelancing, Keeping Up with Tech and More
05:55 MIN
The security risks of AI-generated code and slopsquatting
Slopquatting, API Keys, Fun with Fonts, Recruiters vs AI and more - The Best of LIVE 2025 - Part 2
02:49 MIN
Using AI to overcome challenges in systems programming
AI in the Open and in Browsers - Tarek Ziadé
Featured Partners
Related Videos
Java 21: The Revolution of Virtual Threads - A Deep Dive
Christian Woerz
Java's Project Loom & Co - the end for reactive programming?
Jan Weinschenker
Modern Java: This is not your father's Java anymore
Ron Veen
Beam Me Up, Java! Unraveling the Warp-Speed Evolution: A Journey through Java LTS Versions 11 to 21
Jonathan Vila
Modern Java 25
Ron Veen
Java with a Clojure mindset
Dan Lebrero
Best of Java 15 and beyond—my favorite features
Michael Inden
The Eventloop in JavaScript - How does it work?
Christian Woerz
Related Articles
View all articles

.gif?w=240&auto=compress,format)

From learning to earning
Jobs that call for the skills explored in this talk.









Stealth It
Woking, United Kingdom
£104K
Java
Linux
Node.js
JavaScript
+1