| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package com.kym.common.config;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- /**
- * 虚拟线程配置类
- * Java 21 Virtual Threads 统一配置
- *
- * @author skyline
- * @date 2026-01-11
- */
- @Configuration
- @Slf4j
- public class VirtualThreadConfig {
- /**
- * 创建虚拟线程执行器用于异步任务
- * 虚拟线程非常轻量,可以创建数百万个而不会耗尽系统资源
- */
- @Bean("virtualThreadExecutor")
- public ExecutorService virtualThreadExecutor() {
- log.info("初始化虚拟线程执行器 (Virtual Thread Executor)");
- return Executors.newVirtualThreadPerTaskExecutor();
- }
- /**
- * 创建命名的虚拟线程执行器,便于追踪和调试
- */
- @Bean("namedVirtualThreadExecutor")
- public ExecutorService namedVirtualThreadExecutor() {
- log.info("初始化命名虚拟线程执行器 (Named Virtual Thread Executor)");
- return Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
- .name("vt-", 0)
- .factory());
- }
- /**
- * 为消息处理创建专用的虚拟线程执行器
- */
- @Bean("messageVirtualThreadExecutor")
- public ExecutorService messageVirtualThreadExecutor() {
- log.info("初始化消息处理虚拟线程执行器 (Message Virtual Thread Executor)");
- return Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
- .name("vt-msg-", 0)
- .factory());
- }
- /**
- * 为调度任务创建专用的虚拟线程执行器
- */
- @Bean("schedulerVirtualThreadExecutor")
- public ExecutorService schedulerVirtualThreadExecutor() {
- log.info("初始化调度虚拟线程执行器 (Scheduler Virtual Thread Executor)");
- return Executors.newThreadPerTaskExecutor(Thread.ofVirtual()
- .name("vt-scheduler-", 0)
- .factory());
- }
- }
|