工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题、分析问题、解决问题。
一、认识问题:
首先我们通过下面这个 测试程序 来认识这个问题:
运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun JDK 1.6.0_18, eclipse 3.4,
测试程序:
Java代码
importjava.util.concurrent.CountDownLatch;
publicclassTestNativeOutOfMemoryError {
publicstaticvoidmain(String[] args) {
for(inti =0;; i++) {
System.out.println("i = "+ i);
newThread(newHoldThread()).start();
}
}
}
classHoldThreadextendsTh