WeakReference和ReferenceQueue性能很重要

时间:2013-03-26 00:45:47

标签: java weak-references

我使用RefQueue来跟踪哪些WeakRef不再指向对象。但我想知道它是如何运作的。当我告诉WeakReference在特定队列中自己注册时,然后经过一段时间我做:

private void removeDumpReferences() {
    Reference<? extends E> ref = null;

    while ((ref = garbageQueue.poll()) != null) {
        list.remove(ref);
    }
}

它是否运行所有已注册的引用(测试ref是否为null),或者实际上有一个队列用于已注册的一个,第二个用于那些GC被认为“不在使用”的队列?或者它的工作方式可能非常不同?

1 个答案:

答案 0 :(得分:0)

只有在引用的对象获得GC后,引用才会在引用队列中排队。

相关问题