首页 > 其他分享 >springboot开启jdk虚拟线程

springboot开启jdk虚拟线程

时间:2023-07-18 22:46:35浏览次数:34  
标签:springboot jdk Executors springframework Bean 线程 org import

修改编译参数

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

添加配置类

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 java.util.concurrent.Executors;

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

标签:springboot,jdk,Executors,springframework,Bean,线程,org,import
From: https://www.cnblogs.com/poifa/p/17564325.html

相关文章

  • springboot下使用rabbitMQ之开发配置方式(二)
    springboot下使用rabbitMQ之传参及序列化(二)消息参数传递在开发中也是个坑,不论使用内置的SimpleMessageConverter还是Jackson2JsonMessageConverter均无法让Consumer接收动态参数一.序列化的问题首先贴出具体代码以及测试用例:消费者@RabbitListener(queues="text.q......
  • python使一个函数在新线程中运行的装饰器
    python在用tk编程时,界面响应函数最好在另外一个线程中运行,以免界面没有响应.为方便使用,封装了一个装饰器,调用函数时自动在另外一个线程中运行.示例代码如下:importthreadingdefrun_in_thread(func):defwrapper(*args,**kwargs):thread=threading......
  • 多线程开发 使用Semaphore和BoundedSemaphore对象
    多线程开发使用Semaphore和BoundedSemaphore对象一、使用Semaphore和BoundedSemaphore对象在Python中,可以使用Semaphore和BoundedSemaphore来控制多线程信号系统中的计数器。1.Semaphore在Python程序中,类threading.Semaphore是一个信号机,控制着对公共资源或者临界区的访问......
  • SpringBoot如何解决跨域问题
    什么是跨域跨域问题的本质是浏览器为了保证用户的一种安全拦截机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。跨域三种情况在发起请求时,如果出现了以下情况中的任意一种,那么它就是跨域请求:协议不同,如http和https;域名不同;端口不同。也就是说,即使域名相......
  • 面试官:一个 SpringBoot 项目能处理多少请求?(小心有坑)
    你好呀,我是歪歪。这篇文章带大家盘一个读者遇到的面试题哈。根据读者转述,面试官的原问题就是:一个SpringBoot项目能同时处理多少请求?不知道你听到这个问题之后的第一反应是什么。我大概知道他要问的是哪个方向,但是对于这种只有一句话的面试题,我的第一反应是:会不会有坑?所以并......
  • python在线程中再创建线程池会报错
    Python在线程中再创建线程池会报错引言在Python中,线程是一种轻量级的并发实现方式,可以同时执行多个任务。然而,当我们在一个线程中再创建线程池时,有时会遇到报错的情况。本文将解释为什么在线程中再创建线程池会报错,并提供一些解决方案。为什么会报错?在Python中,线程池是通过conc......
  • SpringBoot启动类变灰色,无法启动,注解通通不生效
    1:自己准备创建SpringBoot项目时,严格按照要求创建后,变成了这样。启动类运行不了,@SpringBootApplication注解也是黑色。而正常的是蓝色,注解是黄色。2:通过查询博主java文件夹标记为sourcesroot目录,右上角选择蓝色框框,然后选择Modules,最后把java、resources、test分别配置好。 ......
  • C#中可以通过管道流实现多线程之间数据交换
    //Console.WriteLine("=======创建线程=========");//ServerThreadserverThreadInstance=newServerThread(pipeName);//ThreadserverThread=newThread(newThreadStart(serverThreadInstance.run));//serverThread.Start();......
  • 测试一个线程向集合添加数据,另一个线程读取数据
    //Console.WriteLine("--------------------------------");//Console.WriteLine("测试一个线程向集合添加数据,另一个线程读取数据,请输入人名,输入exit退出");//BlockingCollection<string>names=newBlockingCollection<string>();......
  • SpringBoot官方笔记4Web
    Mostwebapplicationsusethe spring-boot-starter-web moduletogetupandrunningquickly.Youcanalsochoosetobuildreactivewebapplicationsbyusingthe spring-boot-starter-webflux module.ServletWebApplicationsSpringWebMVCFrameworkimportja......