Java 多线程,导致内存溢出

private static ThreadPoolExecutor threadPoolExecutor=new ThreadPoolExecutor(20, 21, 1, TimeUnit.MINUTES,new ArrayBlockingQueue<Runnable>(20));

以这种方式 创建了 多个线程来执行数据‘导致内存溢出


回答:

你可以从这几个方面排查:

  1. 从你截图中看主要由Arrays.copyOf() 拷贝大量数组导致。
  2. 监控你线程池任务队列是否过长。
  3. 你的线程池核心数及最大数是否合理。


回答:

  1. 缩小数据集,或者用类似流式处理的思路,查一点算一点
  2. 增大内存
  3. 减少线程数

以上是 Java 多线程,导致内存溢出 的全部内容, 来源链接: utcz.com/p/944345.html

回到顶部