Java线程池配置的一些常见误区总结
基于以上的理解,我们很容易就认为如果任务的 QPS 非常低,线程池内线程数量永远也达不到 coreSize。最常见的错误是不理解线程池的运行模型。首先要明确的一点是线程池并没有准确的调度功能,即它无法感知有哪些线程是处于空闲状态的,并把提交的任务派发给空闲线程。但在 BlockingQueue Size 为 50 时,即使线程池 coreSize 为 1000,还会出现请求被线程池拒绝的情况。根据上文可知,线程池能支持 BlockingQueue Size 个任务同时提交,我们把最大同时提交的任务个数,称为并发量,配置线程池时,了解并发量异常重要。除此之外,配置线程池参数时,一定要考虑业务场景。假如接口的流量大部分来自于一个定时程序,那么平均 QPS 就没有了任何意义,线程池设计
下载地址
用户评论