我的程序抛出以下异常:
java.lang.OutOfMemoryError: unable to create new native thread
但是当我向jvm参数添加-XX:+HeapDumpOnOutOfMemoryError
时,似乎jvm没有转储堆,导致我从未找到任何.hprof文件。为什么呢?
答案 0 :(得分:4)
请参阅此错误报告底部标有“评估”的部分。
http://bugs.sun.com/view_bug.do?bug_id=6784422
当您无法创建新的本机线程时,-XX:+HeapDumpOnOutOfMemoryError
将不会触发转储。
答案 1 :(得分:1)
创建线程失败实际上并不是内存不足;它通常是由缺乏本机操作系统资源引起的,而不是缺少堆空间。在这种情况下,堆转储可能不是您想要的...当前线程的堆栈转储可能更有用。