Spring Boot 2.x版本 + JDK21使用虚拟线程
Spring 3.2原生支持虚拟线程,spring boot 2.x + JDK21再通过手工配置,也能使用上tomcat,如下:
来源:
config里定义两个类:
@Configuration
public class ThreadConfig {
@Bean(TaskExecutionAutoConfiguration.APPLICATION_TASK_EXECUTOR_BEAN_NAME)
public AsyncTaskExecutor asyncTaskExecutor() {
return new TaskExecutorAdapter(Executors.newVirtualThreadPerTaskExecutor());
}
@Bean
public TomcatProtocolHandlerCustomizer<?> protocolHandlerVirtualThreadExecutorCustomizer() {
return protocolHandler -> {
protocolHandler.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
};
}
}