0
我使用RefQueue来跟踪哪些WeakRef不再指向对象。但我很怀疑它是如何工作的。当我告诉WeakReference的注册它在特定的队列自我,再经过一段时间后我做的:WeakReference和ReferenceQueue性能问题
private void removeDumpReferences() {
Reference<? extends E> ref = null;
while ((ref = garbageQueue.poll()) != null) {
list.remove(ref);
}
}
它通过所有已注册的引用运行(测试是否对空参考点),或有太多也太队列一个用于已注册的用户,另一个用于GC认为“不再使用”的用户?或者,也许它运作方式非常不同?