zoukankan      html  css  js  c++  java
  • spring boot 线程池配置

    1.配置类

    package cn.com.bonc.util;
    
    import java.util.concurrent.Executor;
    import java.util.concurrent.ThreadPoolExecutor;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableAsync;
    import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
    
    @Configuration
    @EnableAsync
    public class MyThread {
    
        private int corePoolSize = 10;//线程池维护线程的最少数量
    
        private int maxPoolSize = 30;//线程池维护线程的最大数量
    
        private int queueCapacity = 8; //缓存队列
    
        private int keepAlive = 60;//允许的空闲时间
    
        @Bean
        public Executor myExecutor() {
            ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
            executor.setCorePoolSize(corePoolSize);
            executor.setMaxPoolSize(maxPoolSize);
            executor.setQueueCapacity(queueCapacity);
            executor.setThreadNamePrefix("mqExecutor-");
         // rejection-policy:当pool已经达到max size的时候,如何处理新任务  
            // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行  executor.setRejectedExecutionHandler(
    new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略 executor.setKeepAliveSeconds(keepAlive); executor.initialize(); return executor; } }

    2.注解使用

    @Async("myExecutor") //配置类中的方法名

     3.启动类添加

    @EnableAsync
    
    欢迎指正,交流沟通,共同进步!对您有帮助的话点下推荐~~
  • 相关阅读:
    MySql学习2
    Java学习:JDBC
    MySql学习
    Java学习:网络编程
    Java学习:反射
    Java学习:多线程(2)
    Java学习:多线程
    .net后台webclient用post方式发送文件和数据
    实用
    day&day
  • 原文地址:https://www.cnblogs.com/gaoyawei/p/7777254.html
Copyright © 2011-2022 走看看