当前位置: 首页 > 知识库问答 >
问题:

“java.lang.OutOfMemoryError:无法创建新的本机线程”

毛越
2023-03-14
/opt/jrockit-jdk1.6/bin/java -Xms512m -Xmx512m -Xss128k -jar JavaNatSimulator.jar /opt/tools/jnatclients/natSimulator.properties
[root@jboss02 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 72192
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 65535
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 72192
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

共有1个答案

霍修筠
2023-03-14

这不是一个内存问题,尽管异常名称强烈暗示了这一点,而是一个操作系统资源问题。您正在耗尽本机线程,即操作系统将允许JVM使用多少线程。

这是一个不常见的问题,因为你很少需要那么多。您是否有大量的无条件线程在线程应该完成但没有完成的地方生成?

如果可能的话,您可以考虑重写为在执行器的控制下使用可调用/运行程序。有大量具有各种行为的标准执行器,您的代码可以轻松地控制这些执行器。

 类似资料:
  • 问题内容: 我看到这样的评论 我见过这个问题的一个地方是,如果您继续创建线程,而不是直接在线程对象上调用run(),而不是调用start()。这将导致线程对象不被取消引用…因此,一段时间后,出现无法创建新本机线程的消息 在Sun Java论坛上 在我的应用程序中,最初我们计划使用线程,但是后来,我们决定不再需要线程,因此我们只调用run()而不是start()。我们是否需要为新的threadCla

  • 我试图在(1and1VPS)上运行服务器。就在服务器启动和客户机的几个请求(重新加载网页)之后,我得到了这个错误: 但是当我在计算机上运行时,一切都正常。我使用和Centos5.8新安装制作了自己的虚拟服务器,它也在那里工作。 这个内存不足错误的原因可能是什么?如果你有任何建议,请分享。我不知道该怎么处理这个了。

  • 它的发生是因为我创建了许多线程,而没有关闭它们?还是经常创造新的? 有人能告诉我在代码中是否做错了什么吗?

  • 运行5-6小时后,我从spark-driver程序中得到以下错误。我正在使用Ubuntu16.04LTS和Open-JDK-8。 cat/proc/sys/kernel/threads-max “无法创建新的本机线程”显然意味着它与堆无关。所以我相信这更多的是一个操作系统的问题。

  • 我目前正在安装一台新的MongoDB ops manager机器。安装工作正常,但我无法启动mongodb彩信服务。实例0的启动因java而失败。lang.OutOfMemoryError异常。我使用与测试服务器上相同的配置(2个CPU核,8gb ram),在那里服务启动时没有任何中断。更改ulimit配置/使用root用户启动服务无效。 新服务器规格: 2.0Ghz的10个Vcore 48gb内

  • 我想在我的虚拟服务器上启动一个野蝇。每次我运行./wilfly/bin/standalone.sh我在无融资创业时都会收到以下错误: 让我得到以下信息: 如您所见,虚拟内存是无限的,最大用户进程非常大。 在启动本文中描述的jvm时,我还使用-Xss256kb增加/减少了堆栈大小,但没有任何成功。 同样在standalone.xml中为每个子系统增加50也不起作用(在本文中描述)。 您还有其他想法如