zoukankan      html  css  js  c++  java
  • springboot+ 线程池

    //线程池类,直接复制不用修改
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
    
    import java.util.concurrent.ThreadPoolExecutor;
    
    /**
     * @author xulei
     * @version 1.0
     * @date 2020/8/21 16:00
     */
    @Configuration
    public class ThreadConfig {
        //线程池维护线程的最少数量
        private int corePoolSize = 10;
        //线程池维护线程的最大数量
        private int maxPoolSize = 45;
        //缓存队列
        private int queueCapacity = 8;
        //允许的空闲时间
        private int keepAlive = 60;
        
        @Bean(name = "threadPool")
        public ThreadPoolTaskExecutor getThreadPool() {
            ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
            executor.setCorePoolSize(corePoolSize);
            executor.setMaxPoolSize(maxPoolSize);
            executor.setQueueCapacity(queueCapacity);
            executor.setThreadNamePrefix("Executor-");
            // rejection-policy:当pool已经达到max size的时候,如何处理新任务
            // CALLER_RUNS:不在新线程中执行任务,而是由调用者所在的线程来执行
            executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); //对拒绝task的处理策略
            executor.setKeepAliveSeconds(keepAlive);
            executor.initialize();
            return executor;
        }
    }
    //使用,先注入 
    @Resource(name = "threadPool") private ThreadPoolTaskExecutor executor;
    //调用
    executor.execute(() -> {
    //自己的逻辑代码
    });


  • 相关阅读:
    java基础知识(一)- 数据类型
    Java基础知识-去重
    java基础知识-冒泡排序
    Java排序方法sort的使用详解
    Java面试题-字符串操作
    Map.Entry遍历Map
    Java中String的用法
    Java循环控制语句-switch
    API文档打开显示'已取消到该网页的导航'的解决方法
    CentOS6.5 安装snort
  • 原文地址:https://www.cnblogs.com/lovetl/p/13542335.html
Copyright © 2011-2022 走看看