Spring Boot 2.x多线程--使用@Async开启多线程使用示例
2023-09-14 09:02:02 时间
Spring Boot 2.x多线程–使用@Async开启多线程,配置类+启动类注解,搞定多线程任务。
配置类
TaskPoolConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @ProjectName springbootdemo_src
* @ClassName TaskPoolConfig
* @Desicription TODO
* @Author Zhang Xueliang
* @Date 2019/5/15 10:10
* @Version 1.0
**/
@Configuration
public class TaskPoolConfig {
@Bean("taskExecutor-zhangxueliang")
public Executor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);//核心线程数目
executor.setMaxPoolSize(20);//指定最大线程数
executor.setQueueCapacity(200);//队列中最大的数目
executor.setKeepAliveSeconds(60);//线程空闲后的最大存活时间
executor.setThreadNamePrefix("zhangxueliang-taskExecutor-");//线程名称前缀
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
在启动类
ZxlDemoApplication.java
添加@EnableAsync
注解(注意:@EnableAsync注解既可以添加到启动类也可以直接添加到配置类上面,效果一样。如果要扫描特定的包,使用@ComponentScan
包扫描注解指定报名即可)
@SpringBootApplication
@EnableAsync//开启异步
public class ZxlDemoApplication {
public static void main(String[] args) {
SpringApplication.run(ZxlDemoApplication.class, args);
}
}
使用
@Async
注解标注要使用多线程的方法或类,加在类上,该类所有的方法都将是异步执行。
@Async
public Future<String> doReturn(int i){
logger.info(">>>>>>>>>>>>>>线程名>>>>>>>>>>>>>>"+Thread.currentThread().getName());
try {
// 这个方法需要调用500毫秒
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
// 消息汇总
return new AsyncResult<>(String.format("这个是第{%s}个异步调用的证书", i));
}
相关文章
- Spring 全家桶之 Spring Boot 2.6.4(四)- Data Access(Part B MyBatis)
- Spring Boot条件化自动装配
- 利用 Spring Boot Admin 对 Spring Boot 应用监控以及配置认证
- Spring Boot中使用JUnit5进行单元测试
- spring boot整合shiro_Spring框架介绍及使用
- Spring-boot_Spring Boot
- Spring Boot 整合定时任务,可以动态编辑的定时任务
- 译:响应式Spring Cloud初探
- Spring Boot + Elasticsearch 实现索引的日常维护
- Spring基础(五):Bean的生命周期
- Spring基础(十六):Spring事务管理注解方式和XML配置方式
- 玩转 Spring Boot 集成篇(任务动态管理代码篇)
- SpringBoot Admin监控Spring程序
- Spring Boot 3.0 抢先了解:aot.factories 是个啥?
- Payment Spring Boot 1.0.2.RELEASE 发布,接入微信支付分、先享卡功能
- Spring Boot的数据访问方式(三)
- Spring Cloud Sleuth在Spring Boot应用程序中的集成
- IntelliJ IDEA spring boot 远程Ddbug调试详解程序员
- 查看docker 部署Spring Boot服务控制台信息详解程序员
- Spring任务调度之Quartz详解编程语言
- Spring Boot 返回 XML 数据,一分钟搞定!详解编程语言
- Spring Boot 2.1.0 已发布,7 个重大更新!详解编程语言
- Spring boot+vue前后端开发学习笔记2详解编程语言
- java spring boot 打包方法详解编程语言
- 关于java idea 创建spring boot没有下载依赖的解决方案详解编程语言