springboot多线程并发执行任务

 更新时间:2026年03月25日 08:18:59   作者:南山love  
本文主要介绍了springboot多线程并发执行任务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1.config文件

package com.cooker.lottery_system.common.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.ThreadPoolExecutor;
@Configuration
@EnableAsync
public class ExecutorConfig {
    @Value("${async.executor.thread.core_pool_size}")
    private int corePoolSize;
    @Value("${async.executor.thread.max_pool_size}")
    private int maxPoolSize;
    @Value("${async.executor.thread.queue_capacity}")
    private int queueCapacity;
    @Value("${async.executor.thread.name.prefix}")
    private String namePrefix;
    @Bean(name = "asyncServiceExecutor")
    public ThreadPoolTaskExecutor asyncServiceExecutor(){
        ThreadPoolTaskExecutor threadPoolTaskExecutor = new
                ThreadPoolTaskExecutor();
        threadPoolTaskExecutor.setCorePoolSize(corePoolSize);
        threadPoolTaskExecutor.setMaxPoolSize(maxPoolSize);
        threadPoolTaskExecutor.setQueueCapacity(queueCapacity);
        threadPoolTaskExecutor.setKeepAliveSeconds(3);
        threadPoolTaskExecutor.setThreadNamePrefix(namePrefix);
        // rejection-policy:当pool已经达到max size的时候,如何处理新任务
        // CALLER_RUNS:不在新线程中执⾏任务,⽽是由调⽤者所在的线程来执⾏
        threadPoolTaskExecutor.setRejectedExecutionHandler(new
                ThreadPoolExecutor.AbortPolicy());
        //加载
        threadPoolTaskExecutor.initialize();
        return threadPoolTaskExecutor;
    }
}

2、application.properties

## 线程池 ##
async.executor.thread.core_pool_size=10
async.executor.thread.max_pool_size=20
async.executor.thread.queue_capacity=20
async.executor.thread.name.prefix=async-service-

3、对象注入

@Autowired
    private ThreadPoolTaskExecutor threadPoolTaskExecutor;

4、并行执行

// 短信通知
        threadPoolTaskExecutor.execute(()->sendMessage(winningRecordDOList));
        // 邮件通知
        threadPoolTaskExecutor.execute(()->sendMail(winningRecordDOList));

到此这篇关于springboot多线程并发执行任务的文章就介绍到这了,更多相关springboot多线程并发执行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatis CodeHelperPro激活方法详细教程

    MyBatis CodeHelperPro激活方法详细教程

    MyBatisCodeHelper-Pro是IDEA下的一个插件,功能类似mybatis plugin,今天小编给大家分享MyBatis CodeHelperPro激活方法,需要的朋友跟随小编一起看看吧
    2021-07-07
  • Java中java.lang.ClassCastException异常原因及解决方法

    Java中java.lang.ClassCastException异常原因及解决方法

    大家好,本篇文章主要讲的是Java中java.lang.ClassCastException异常原因及解决方法,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • maven中profile的使用

    maven中profile的使用

    本文主要介绍了maven中profile的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java 基础全面讲解StringBuffer类的使用

    Java 基础全面讲解StringBuffer类的使用

    当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder类,和String类不同的是,StringBuffer和 StringBuilder类的对象能够被多次的修改,并且不产生新的未使用对象
    2022-01-01
  • 解决Springboot中Feignclient调用时版本问题

    解决Springboot中Feignclient调用时版本问题

    这篇文章主要介绍了解决Springboot中Feign client调用时版本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

    SpringBoot+EasyPOI轻松实现Excel和Word导出PDF

    在企业级开发中,将 Excel 和 Word 文档导出为 PDF 是常见需求,本文将结合 ​​EasyPOI和 ​​Aspose 系列工具实现 Excel 和 Word 到 PDF 的转换,需要的可以了解下
    2025-07-07
  • Java 如何判断Integer类型的值是否相等

    Java 如何判断Integer类型的值是否相等

    这篇文章主要介绍了Java 如何判断Integer类型的值是否相等操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java大对象(如 List、Map)如何复用以及错误和正确的方法讲解

    Java大对象(如 List、Map)如何复用以及错误和正确的方法讲解

    对象复用是Java编程中一种重要的优化技术,它旨在减少对象的创建和销毁次数,从而降低内存分配和垃圾回收的开销,提高程序性能,这篇文章主要介绍了Java大对象(如 List、Map)如何复用以及错误和正确方法的相关资料,需要的朋友可以参考下
    2026-01-01
  • java  Iterator接口和LIstIterator接口分析

    java Iterator接口和LIstIterator接口分析

    这篇文章主要介绍了java Iterator接口和LIstIterator接口分析的相关资料,需要的朋友可以参考下
    2017-05-05
  • Java超详细整理讲解各种排序

    Java超详细整理讲解各种排序

    这篇文章主要介绍了Java常用的排序算法及代码实现,在Java开发中,对排序的应用需要熟练的掌握,这样才能够确保Java学习时候能够有扎实的基础能力。那Java有哪些排序算法呢?本文小编就来详细说说Java常见的排序算法,需要的朋友可以参考一下
    2022-07-07

最新评论