Virtual threads are being proposed for Java, in an effort to dramatically reduce the effort required to write, maintain, and observe high-throughput concurrent applications.
A draft JDK Enhancement Proposal (JEP) from Oracle, filed this week, calls for a preview of virtual threads as part of the standard edition of Java. Virtual threads would supplement Java’s platform threads, which represent operating system threads, with a lightweight user-mode thread implementation that would make more efficient use of available hardware, with dramatically reduced costs.
Threads, the proposal notes, are useful for representing a unit of concurrency, such as a transaction. Java’s current implementation of Thread consumes an OS thread for each Java thread, and OS threads are scarce and costly. A modern server can handle orders of magnitude more concurrent transactions than OS threads.
Developers writing high-throughput server software have had to share threads among transactions to make efficient use of hardware. This