-5

在响应数据中,我收到一条错误消息。我想将池大小从 10 增加到 100!。

{
    "errorCode": "INTERNAL_SERVER_ERROR",
    "message": "Task java.util.concurrent.FutureTask@428373db rejected from java.util.concurrent.ThreadPoolExecutor@7114477d[Running, pool size = 10, active threads = 10, queued tasks = 0, completed tasks = 30014]"
}
4

1 回答 1

1

让我们看看,从文档

核心和最大池大小
A将根据(see ) 和(see ) 设置的界限ThreadPoolExecutor自动调整池大小 ( see )。当在方法execute()中提交了一个新任务,并且运行的线程少于线程时,即使其他工作线程处于空闲状态,也会创建一个新线程来处理该请求。如果运行的线程多于但少于线程数,则仅当队列已满时才会创建一个新线程。通过设置和相同,您创建了一个固定大小的线程池。通过设置为基本上无界的值,例如getPoolSize()corePoolSizegetCorePoolSize()maximumPoolSizegetMaximumPoolSize()java.lang.RunnablecorePoolSizecorePoolSizemaximumPoolSizecorePoolSizemaximumPoolSizemaximumPoolSizeInteger.MAX_VALUE,您允许池容纳任意数量的并发任务。最典型的是,核心和最大池大小仅在构造时设置,但它们也可以使用setCorePoolSize(int)和动态更改setMaximumPoolSize(int)

因此,使用将值作为参数的setMaximumPoolSize方法。Integer.MAX_VALUE

这里有一些样本可以指导您

于 2018-07-23T08:36:25.743 回答