此代码:
while (true) {
new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
return null;
}
};
}
让JVM很快耗尽内存。
为什么?
答案 0 :(得分:4)
我尝试使用默认选项在Windows 7上使用JRE 1.7.0_60 x86_64运行此代码,结果如下:
threadFactory
输出到System.out
的修改后的代码版本会导致"类似锯齿"堆使用模式:
这意味着分配和垃圾收集都会发生。
回到你的问题:我认为你错过了代码的一些重要部分,或者将-Xmx置于极低的价值或其他原因。但是你发布的代码还可以。