0 Tage Serie
java / expert
Snippet

Aktivierung von Virtual Threads für skalierbares blockierendes I/O

Die Nutzung von Java 21+ Virtual Threads in Spring Boot 3.2+ ermöglicht es der Anwendung, Tausende gleichzeitiger blockierender Verbindungen ohne den Speicher-Overhead von Plattform-Threads zu verarbeiten, was reaktive Skalierbarkeit mit imperativem Code bietet.

snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Configuration
@ConditionalOnThreading(Threading.VIRTUAL)
public class ThreadingConfig {
@Bean
public TomcatProtocolHandlerCustomizer<?> protocolHandlerCustomizer() {
return protocolHandler -> {
protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
};
}
}
// application.properties
// spring.threads.virtual.enabled=true
spring
Erklärung
1
Executors.newVirtualThreadPerTaskExecutor()
Erstellt einen Executor, der für jede übermittelte Aufgabe einen neuen virtuellen Thread startet.
2
protocolHandler.setExecutor(...)
Konfiguriert Tomcat so, dass virtuelle Threads zur Verarbeitung eingehender HTTP-Anfragen verwendet werden.