Unveiling the Magical Power of Java Virtual Threads

Track: Core Java
Abstract
Thread-per-request programming limits application scalability, leading developers to adopt thread sharing and asynchronous programming to better utilize hardware, though this introduces additional complexity. Creating reactive pipelines, debugging them, and visualizing their execution can be complicated tasks, compounded by the complexities that arise when exceptions occur.
Java Virtual Threads enable applications to scale while preserving the thread-per-request style programming. Just as operating systems create the illusion of abundant memory by mapping a large virtual address space to limited physical RAM, a Java runtime can create the illusion of many threads by mapping numerous virtual threads to a few OS threads.
Let's explore Java virtual threads, including how they work under the hood, their use cases, and the APIs introduced by Project Loom. We'll also compare traditional threads with virtual threads through a simple programming example to see their benefits in action.
Anamika Roychowdhury
Anamika Roychowdhury is a Lead Engineer at IBM India Software Lab, where she spearheads the development and support of IBM's Distributed Cache Solution, WebSphere eXtreme Scale. She provides expert guidance to numerous enterprise customers to effectively configure and manage distributed cache and resolves production anomalies in mission critical workloads. Anamika's 11 years of career journey spans prestigious organizations including American Express, Siemens R&D, and Wipro Technologies, encompassing diverse technology sectors. Her expertise includes distributed caching algorithms, memory efficiency enhancements and enterprise workload optimization. Her passion for emerging technologies and their transformative impact on our world has been a constant driving force. She has completed her master's in computer science from IIIT, Bangalore.