线程池任务执行器,,,最大池大小是多少,核心池大小可以在java中定义
Posted
技术标签:
【中文标题】线程池任务执行器,,,最大池大小是多少,核心池大小可以在java中定义【英文标题】:thread pool task executor ,,,what is the maximum pool size, core pool size can be defined in java 【发布时间】:2021-10-03 03:25:20 【问题描述】:我们可以在 java spring boot 框架中分配的最大 corepoolsize、maxpoolsize、queuecapacity 是多少。我在公司工作,需要处理更多线程请求。我必须提高线程性能。现有的具有默认值。
public Executor asyncExecutor()
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
return executor;
【问题讨论】:
有一篇关于数字的好文章:engineering.zalando.com/posts/2019/04/… 增加线程甚至可能减慢您的应用程序。创建/添加更多线程不是解决方案。根据您的处理器等,它甚至可能使事情变得更糟。此外,如果您需要增加请求吞吐量,使用ThreadPoolTaskExecutor
也无济于事(除非您将其用于异步 servlet API 处理)。
【参考方案1】:
核心池大小默认配置为1,最大池大小和队列容量为2147483647。
【讨论】:
以上是关于线程池任务执行器,,,最大池大小是多少,核心池大小可以在java中定义的主要内容,如果未能解决你的问题,请参考以下文章
Java 并发编程线程池机制 ( 线程池执行任务细节分析 | 线程池执行 execute 源码分析 | 先创建核心线程 | 再放入阻塞队列 | 最后创建非核心线程 )