• 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(() -> {
    //自己的逻辑代码
    });


  • 相关阅读:
    自动构建部署
    EF 性能调优
    断点续传
    gis 相关资料
    easyui 特殊操作
    KJ面试
    前端面试题汇总
    es6之扩展运算符 三个点(...)
    vue.js开发环境搭建
    gulp 环境搭建
  • 原文地址:https://www.cnblogs.com/lovetl/p/13542335.html
Copyright © 2020-2023  润新知