springboot开启jdk虚拟线程

springboot3.2之后的版本可以简单的开启虚拟线程
application.yml中配置

spring:
  threads:
    virtual:
      enabled: true

修改编译参数

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <compilerArgs>--enable-preview</compilerArgs>
    </configuration>
</plugin>

springboot3.2之前的版本通过如下方式开启虚拟线程
添加配置类

package com.example.virtualthreadsdemo.config;

import org.springframework.boot.web.embedded.tomcat.TomcatProtocolHandlerCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.core.task.support.TaskExecutorAdapter;

import java.util.concurrent.Executors;


@Configuration
public class VirtualThreadsConfig {
    @Bean
    AsyncTaskExecutor applicationTaskExecutor() {
        return new TaskExecutorAdapter(Executors.newVirtualThreadPerTaskExecutor());
    }
    @Bean
    TomcatProtocolHandlerCustomizer<?> threadExecutor() {
        return protocolHandler -> protocolHandler.setExecutor(
                Executors.newVirtualThreadPerTaskExecutor()
        );
    }
}

posted @ 2023-07-18 22:33  七つ一旋桜  阅读(387)  评论(0)    收藏  举报