当前位置: 首页> 教育> 就业 > 济南cms建站_黄山自驾游旅游攻略_营销软文范文200字_百度的推广方式有哪些

济南cms建站_黄山自驾游旅游攻略_营销软文范文200字_百度的推广方式有哪些

时间:2025/7/11 7:47:25来源:https://blog.csdn.net/tergou/article/details/144488435 浏览次数:0次
济南cms建站_黄山自驾游旅游攻略_营销软文范文200字_百度的推广方式有哪些

Spring Boot项目启用虚拟线程

  • 开始
    • 基本使用
      • 先写一个测试方法
      • 通过springboot配置项开启虚拟线程
    • 目前存在的问题

开始

虚拟线程正式发布是在JDK21,对于Spring Boot版本选择3以上。

基本使用

关于虚拟线程本身的使用,之前已经介绍过。这里要说的是直接将Spring Boot项目的http请求处理的线程换成虚拟线程。

先写一个测试方法

写一个简单的方法查看当前线程信息

@RestController
@Slf4j
public class DemoController {@GetMapping("demo")public void demo() {Thread thread = Thread.currentThread();log.info("当前线程, id = {}, name = {}, isVirtual = {}", thread.threadId(), thread.getName(), thread.isVirtual());}
}

通过springboot配置项开启虚拟线程

官方文档

spring:main:# 由于虚拟线程是守护线程,如果JVM所有线程都是虚拟线程,JVM会直接退出。因此官方建议开启以下属性避免主线程退出JVMkeep-alive: truethreads:virtual:enabled: true

目前存在的问题

实际测试下来,这种配置方式在使用undertow作为web容器时没有生效。官方文档中暂时没看到相关说明,暂时只有通过自定义 UndertowServletWebServerFactory来实现

@Configuration
public class UndertowConfig implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {@Overridepublic void customize(UndertowServletWebServerFactory factory) {// 创建虚拟线程执行器
//        ExecutorService virtualThreadExecutor = Executors.newVirtualThreadPerTaskExecutor();factory.addDeploymentInfoCustomizers(deploymentInfo -> {deploymentInfo.setExecutor(Executors.newVirtualThreadPerTaskExecutor());deploymentInfo.setAsyncExecutor(Executors.newVirtualThreadPerTaskExecutor());});}
}
  • 以上方式使用jdk内置的方法创建Executor,如果要自定义一些属性可以自定义方法
    public static ExecutorService newVirtualThreadPerTaskExecutor() {Thread.Builder.OfVirtual builder = Thread.ofVirtual();builder.name("under-vir-", 0);ThreadFactory factory = builder.factory();return newThreadPerTaskExecutor(factory);}
关键字:济南cms建站_黄山自驾游旅游攻略_营销软文范文200字_百度的推广方式有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: