前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java.lang.OutOfMemoryError: unable to create new native thread 问题原因及解决

java.lang.OutOfMemoryError: unable to create new native thread 问题原因及解决

作者头像
夹胡碰
发布2021-04-13 16:20:19
2.2K0
发布2021-04-13 16:20:19
举报
文章被收录于专栏:程序猿~程序猿~程序猿~

1. 问题描述

我们知道,java进程中的线程,是直接映射到服务的线程上,当创建的线程过多时,创建线程会失败,现象如下:

689
690
691
692
693
Exception in thread "main" 694
java.lang.OutOfMemoryError: unable to create new native thread
        at java.lang.Thread.start0(Native Method)
        at java.lang.Thread.start(Thread.java:714)
        at com.jfp.test.CPUTest2.main(CPUTest2.java:20)

2. 问题原因

服务器对每个进程有内存大小限制(服务器进程内存包含JVM内存和服务器线程内存),当进程内存限制过小,JVM内存过大时,就没有内存空间继续分配新的线程,就会产生OOM: unable to create new native thread

注意: 这部分内存溢出不发生在JVM中,而是发生在服务器内存中

3. 解决办法

调整服务器进程最大内存限制(默认是32768即32G)

echo 102400 > /proc/sys/kernel/pid_max

4. 参考

  1. 解决 java.lang.OutOfMemoryError: unable to create new native thread
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 问题描述
  • 2. 问题原因
  • 3. 解决办法
  • 4. 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档