Project Loom: Modern Scalable Concurrency for the Java Platform
Concurrent applications, those serving multiple independent application actions simultaneously, are the bread and butter of Java server-side programming. The thread has been Java’s primary unit of concurrency since Java’s inception, and is a core construct around which the entire Java platform is designed, but its cost is such that it can no longer efficiently represent a domain unit of concurrency, such as the session, request or transaction. As a result, Java has seen a proliferation of libraries and frameworks that offer scalable concurrency at the cost of abandoning the thread as the unit of software concurrency and, with it, the straightforward support of Java’s troubleshooting observability tooling, such as stack dumps, debuggers and profilers.
Project Loom aims to reinstate the thread as an efficient unit of concurrency by adding a lightweight implementation of threads to the Java platform, which would allow straightforward code—that’s easy to write, understand and maintain, and works in harmony with the platform and its tooling—to scale and meet the requirements of even most demanding concurrent applications.