Solon v2.7.5

十、启用 Java21 虚拟线程

</> markdown

启用虚拟线程后,http 请求、async 注解处理、部分 job 执行将使用虚拟线程池。

1、通过配置启用(推荐)

v2.7.3 后支持

solon.threads.virtual.enabled: false #启用虚拟线程池(默认false)

2、通过接口启用(旧的)

启动时替换相关执行器,并监视 HttpServerConfigure 事件替换执行器:

@SolonMain
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args, app->{
            //并行调用启用虚拟线程(部分定时任务在用)
            RunUtil.setParallelExecutor(Executors.newVirtualThreadPerTaskExecutor())
            //异步调用启用虚扭线程(及 @Async 注解)
            RunUtil.setAsyncExecutor(Executors.newVirtualThreadPerTaskExecutor())
            
            //Http请求启用虚扭线程(jlhttp, smart-http 支持)
            app.onEvent(HttpServerConfigure.class, e->{
                e.setExecutor(Executors.newVirtualThreadPerTaskExecutor());
            });
        });
    }
}