我使用jvm参数在我的机器和客户机器上运行以下程序-Xmx1024m
.
int i=0; while(true) { new Thread().start(); i++; }
两台机器都有windows 7
和jdk 7 32bits
.
在我的机器上,当我在3M附近时,我终止了这个过程.在客户的机器上,程序OutOfMemoryError: unable to create new native Thread
在我大约8K 的时候扔了一个.
我用jvm参数重试了实验-Xmx24m
.在这种情况下,当i大约24K时,客户机器上的程序会抛出相同的错误.如果我将线程的堆栈跟踪减少到128K,则还有一个小的增量-Xss
.
看起来客户的机器在线程终止时不会释放线程的堆栈.
有没有人遇到过这个问题?有任何想法吗?