SpringBoot 线程池配置及使用

 线程池使用及配置(基于springboot)

application.properties文件配置

#线程池配置
task.pool.corePoolSize=20
task.pool.maxPoolSize=40
task.pool.keepAliveSeconds=300
task.pool.queueCapacity=50

创建线程配置类

/**
 * 线程池配置类
 */
@Data
@ConfigurationProperties(prefix = "task.pool")
public class TaskThreadPoolConfig {

    //核心线程池大小
    private int corePoolSize;
    //最大线程数
    private int maxPoolSize;
    //活跃时间
    private int keepAliveSeconds;
    //队列容量
    private int queueCapacity;
}
  1. 创建线程任务
      /**
 * 创建线程任务
 */
@Component
public class AsyncTask {

    protected final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Async("myTaskAsyncPool")//这个名字是 TaskExecutePool 里面的 myTaskAsyncPool 方法 即配置的线程池方法名
    public void doTask1(int i)throws InterruptedException{
        logger.info("Task: "+i+" started.");
    }
}

使用

    @Autowired
    private AsyncTask asyncTask;
    
    public void test()throws InterruptedException{
        for (int i=0;i<100;i++){
            asyncTask.doTask1(i);
        }
    }

查看控制台就可以看到效果了

你可能感兴趣的:(java,springboot)