【SpringBoot】线程池

简介

SpringBoot线程池配置心得。java

一、核心配置参数

task:
  pool:
    corePoolSize: 4
    maxPoolSize: 20
    keepAliveSeconds: 300
    #queueCapacity: 8

一、 queueCapacity 队列长度,参考源码能够发现,当咱们限制队列长度的时候,颇有可能会因为任务的疯狂提交致使后面的任务被所有拒绝处理。所以,若是单个任务耗费时间比较长,那么推荐不要去限制queueCapacity的长度,而让其保持默认值性能

private int corePoolSize = 1;
    private int maxPoolSize = 2147483647;
    private int keepAliveSeconds = 60;
    private int queueCapacity = 2147483647; //该默认值
    private boolean allowCoreThreadTimeOut = false;

以上是相关配置的默认值。这样,能够一口气加载咱们提交的任务的上下文信息。线程

二、maxPoolSizecorePoolSize:能够理解为闲时的线程池维护的核心线程数量corePoolSize,固然,设置一些其余参数例如闲时时间参数时另算。再有maxPoolSize是当当前线程超过核心线程的时候,还能够继续建立的线程数量,因为任务和对应线程作了一一映射,也能够理解为系统当前处理的任务的最大数量,此时须要注意的是,不要设置的过大,根据电脑的性能以及任务的消耗进行对应设置,设置的太小那么不能最大程度利用机器性能,设置的过大则会致使系统卡死或者崩溃。code

三、keepAliveSeconds: 程池维护线程所容许的空闲时间,同理,参考源码,其值默认为60s。队列

相关文章
相关标签/搜索