Java - ThreadFactory内存泄漏?

时间:2014-06-23 18:52:51

标签: multithreading memory-leaks

此代码:

    while (true) {
        new ThreadFactory() {
            @Override
            public Thread newThread(Runnable r) {
                return null;
            }
        };
    }

让JVM很快耗尽内存。

为什么?

1 个答案:

答案 0 :(得分:4)

我尝试使用默认选项在Windows 7上使用JRE 1.7.0_60 x86_64运行此代码,结果如下:

  1. 正在运行代码的代码似乎根本没有执行任何分配,很可能是因为JIT检测到未使用的引用;
  2. 将创建的threadFactory输出到System.out的修改后的代码版本会导致"类似锯齿"堆使用模式:
  3. enter image description here

    这意味着分配和垃圾收集都会发生。

    回到你的问题:我认为你错过了代码的一些重要部分,或者将-Xmx置于极低的价值或其他原因。但是你发布的代码还可以。