springBoot使用threadPoolTaskExecutor多线程

  1. 在springboot设置Configuration类,配置线程池参数,同时设置@EnableAsync注解
@EnableAsync
@SpringBootConfiguration
public class ThreadPoolConfig {

    @Value("${threadpool.corePoolSize}")
    private int corePoolSize;

    @Value("${threadpool.maxPoolSize}")
    private int maxPoolSize;

    @Value("${threadpool.queueCapacity}")
    private int queueCapacity;

    @Value("${threadpool.keepAliveSeconds}")
    private int keepAliveSeconds;

    @Bean
    public ThreadPoolTaskExecutor threadPoolTaskExecutor(){
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(corePoolSize);
        executor.setMaxPoolSize(maxPoolSize);
        executor.setQueueCapacity(queueCapacity);
        executor.setKeepAliveSeconds(keepAliveSeconds);
        executor.setThreadNamePrefix("ThreadPoolTaskExecutor-");
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        executor.initialize();
        return executor;
    }
}

2.  配置执行任务类,

# 因为我们使用的是返回异步结果,所以要继承Callable类
public  class abcTask implements Callable<ReturnValue> {

#异步任务中无法使用自动注入,所以需要用构造函数传入参数
public abc(){}

#写入任务逻辑
@override
public ReturnValue  call() throw Exception {
   
}
  1. 在main中调用多线程任务
#创建一个list用于接收多线程执行结果
List<Future<abc>> futures = new ArrayList<>();
        for (abc1 abc1 : acbs) {
            FutureTask futureTask = new FutureTask<abc>(new abcTask());
            #如果需要返回结果的话,这里就使用submit,如果不需要返回结果的话就使用
            threadPoolTaskExecutor.submit(futureTask);
            futures.add(futureTask);
        }

#使用for方法从futures list中获取多线程的返回结果

相关推荐

  1. springBoot使用threadPoolTaskExecutor线

    2023-12-17 02:14:04       36 阅读
  2. Springboot自定义线ThreadPoolTaskExecutor

    2023-12-17 02:14:04       34 阅读
  3. Spring中线ThreadPoolTaskExecutor使用

    2023-12-17 02:14:04       35 阅读
  4. 线使用

    2023-12-17 02:14:04       37 阅读
  5. 线常见使用

    2023-12-17 02:14:04       7 阅读
  6. Python----线使用

    2023-12-17 02:14:04       8 阅读
  7. springboot线的原理剖析

    2023-12-17 02:14:04       24 阅读
  8. 【Python】线线使用

    2023-12-17 02:14:04       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-17 02:14:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-17 02:14:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-17 02:14:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-17 02:14:04       20 阅读

热门阅读

  1. spring 笔记二 spring配置数据源和整合测试功能

    2023-12-17 02:14:04       31 阅读
  2. Springboot Minio最新版大文件下载

    2023-12-17 02:14:04       45 阅读
  3. C 标准库 - <string.h>

    2023-12-17 02:14:04       32 阅读
  4. echarts 柱形图、折线图点击事件

    2023-12-17 02:14:04       34 阅读
  5. Docker笔记:简单部署 nodejs 项目和 golang 项目

    2023-12-17 02:14:04       34 阅读
  6. Python中的名称空间和作用域

    2023-12-17 02:14:04       38 阅读
  7. NLP中的Seq2Seq与attention注意力机制

    2023-12-17 02:14:04       38 阅读
  8. Unity项目里Log系统该怎么设计

    2023-12-17 02:14:04       30 阅读
  9. docker配置容器内访问主机服务

    2023-12-17 02:14:04       40 阅读
  10. axios+echarts

    2023-12-17 02:14:04       30 阅读
  11. react受控组件和非受控组件区别

    2023-12-17 02:14:04       37 阅读
  12. 大语言模型续写completions

    2023-12-17 02:14:04       40 阅读
  13. 数据库_mongoDB

    2023-12-17 02:14:04       35 阅读