Virtual threads (VTs) in Java are often discussed in isolation, away from the realities of Java enterprise applications.
In my new break-down article I've had a deeper look at how VTs behave as a request execution model inside Apache Tomcat and Spring Boot to clarify differences in:
- Scalability
- Resource usage
- Overload behaviour
In the end, I suggested a selection criterion between PT-based and VT-based executor impl-s.
Full article:

Spring Boot | Tomcat request execution models
This article explains how Spring Boot with embedded Tomcat executes blocking HTTP requests using either a classic worker thread pool or virtual threads. It compares scalability, resource usage, overload behavior, and offers a practical heuristic for choosing the right execution model.