首页 > 其他 > 详细

jvm内存溢出原因分析

时间:2021-05-29 08:51:56      阅读:24      评论:0      收藏:0      [点我收藏+]

一,创建线程池时,可能使用Excutors的四种方式。

newSingleThreadExecutor()和 newFixedThreadPool(int nThreads),内部实现队列为 LinkedBlockingQueue。
LinkedBlockingQueue 是一个由链表实现的有界阻塞队列,容量默认值为 Integer.MAX_VALUE,(也可以自定义容量,建议指定容量大小),
默认大小在添加速度大于删除速度情况下有造成内存溢出的风险,LinkedBlockingQueue 是先进先出的方式存储元素。
newScheduledThreadPool(int corePoolSize)和 newCachedThreadPool()的最大线程数为Integer.MAX_VALUE,同一时刻并发任务多,导致快速创建多个线程,造成内存溢出

jvm内存溢出原因分析

原文:https://www.cnblogs.com/weixy3/p/14823947.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!