Chapter 2. Understanding Virtual Threads
The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.
Tony Hoare
Virtual threads are a groundbreaking addition to the Java concurrency toolkit that are fundamentally changing how developers write concurrent programs, making it practical to use threads as the primary unit of concurrency at massive scale. As we will discuss at length in this chapter, virtual threads differ significantly from the platform threads, or classical threads, that have served us over the years. In particular, while platform threads are managed by the underlying operating system or by thread libraries like those from POSIX, virtual threads are lightweight threads managed by the Java Virtual Machine (JVM) itself. This shift from OS-managed to JVM-managed threads represents more than just an implementation detail—it enables applications to create millions of threads without the memory and performance penalties that made such designs impractical with traditional threads. In this chapter, we’ll take a deep dive into virtual threads by reviewing their architecture, discussing how they differ from platform threads, examining the motivation behind their creation for modern Java applications, and exploring how they simplify concurrent programming while delivering unprecedented scalability.
What Is a Virtual Thread?
Virtual threads are managed by the JVM, which allows them to operate more efficiently than ...