Thread-per-request can lead to resource exhaustion under high load.
In traditional server models, each HTTP request is handled by a separate thread. This approach can consume a large number of resources, especially under high traffic, leading to thread exhaustion. For example, a Tomcat server handling numerous requests simultaneously can crash if the number of threads exceeds the server's capacity. Reactive systems like Spring WebFlux avoid this by using a non-blocking event loop, which decouples the request handling from execution threads, efficiently utilizing CPU resources.