zoukankan      html  css  js  c++  java
  • 多线程使用

     首先创建线程池

    @EnableAsync
    @Configuration
    @Component
    public class TaskPoolConfig {

    @Bean("taskExecutor")
    public ThreadPoolTaskExecutor taskExecutor(){
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    //核心线程数:线程池创建时候初始化的线程数
    executor.setCorePoolSize(5);
    // 最大线程数:线程池最大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
    executor.setMaxPoolSize(20);
    // 缓冲队列:用来缓冲执行任务的队列
    executor.setQueueCapacity(80);
    //允许线程的空闲时间60秒:当超过了核心线程之外的线程在空闲时间到达之后会被销毁
    executor.setKeepAliveSeconds(60);
    // 线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
    executor.setThreadNamePrefix("taskExecutor-");
    // 缓冲队列满了之后的拒绝策略:由调用线程处理(一般是主线程)
    executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());
    //用来设置线程池关闭的时候等待所有任务都完成再继续销毁其他的Bean
    executor.setWaitForTasksToCompleteOnShutdown(true);
    //该方法用来设置线程池中任务的等待时间,如果超过这个时候还没有销毁就强制销毁,以确保应用最后能够被关闭,而不是阻塞住
    executor.setAwaitTerminationSeconds(60);
    return executor;
    }
    }
    构造传入参数
    @AllArgsConstructor
    public class AsyncSendService implements Runnable{

    private SendMailServiceImpl sendMailService;

    private String reportNo;

    private Date currentDate;

    @Override
    public void run() {
    sendMailService.sendMailAndMsg(reportNo, currentDate);
    }
    }
    调用
    @Resource(name = "taskExecutor")
    ThreadPoolTaskExecutor taskExecutor;
    @Autowired
    SendMailServiceImpl sendMailService;
    String rgtNo="xxxxx"
    Date currentDate = 20xx-02-10;


    AsyncSendService asyncSendService = new AsyncSendService(sendMailService,claimConfirmationVO.getRgtNo(),currentDate);
    taskExecutor.execute(asyncSendService);
    talk is cheap. show me the code.
  • 相关阅读:
    25-javaweb接入支付宝支付接口
    4-js 函数
    24-filter-拦截器
    23-新建maven 项目
    22-maven-安装与配置
    15-matlab矩阵运用
    2018.7.18 div,section,article的区别和使用
    2018.7.17 牛客网训练
    2018.7.16常用推荐算法
    2018.7.15 解决css中input输入框点击时去掉外边框方法
  • 原文地址:https://www.cnblogs.com/yushizhang/p/14780716.html
Copyright © 2011-2022 走看看