系统相关
首页 > 系统相关> > jvm内存溢出原因分析

jvm内存溢出原因分析

作者:互联网

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

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

标签:int,LinkedBlockingQueue,线程,内存,jvm,Integer,溢出
来源: https://www.cnblogs.com/weixy3/p/14823947.html