请问线程池配置中的QueueCapacity队列大小如何设置?

来源:2-13 方法引用精讲

fly_烟雨行舟

2021-12-14

老师,请问线程池配置中的QueueCapacity队列大小如何设置?
在网上搜了一下,不少文章说这个队列大小不能直接设置成Integer.MAX_VALUE,而且阿里开发手册也明确提到这一点不能直接设置成最大,因为在有些情况下是有可能导致线上OOM的情况。

请问这个队列大小的设置有什么讲究吗,应该比核心线程数小呢还是比它高几倍呢,这一点一直没明白,所以在线上一直不敢使用。

写回答

1回答

张小喜

2021-12-14

这个跟核心数没多大关系 要根据业务的请求量 其实这个Q就是一个缓冲区 把线程没时间处理的任务暂时缓存 所以要根据实际业务 比如业务会有瞬时的大并发量 这个就要设置大点 来应对 如果业务很平稳 就设置平稳量的三四倍就好

0
0

Java高效编程技巧实践 告别996

可以改变的编程效率

1451 学习 · 326 问题

查看课程