线程池任务执行器,,,最大池大小是多少,核心池大小可以在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 源码分析 | 先创建核心线程 | 再放入阻塞队列 | 最后创建非核心线程 )

线程池工作流程-图示

线程池工作流程-图示

线程池工作流程-图示

使用多个执行程序时,理想/最佳线程池大小是多少?

Java多线程之线程池