我知道对于ReferencesQueue中的PhantomReference,必须自己处理并清空ReferenceQueue。
如果ReferenceQueue中有WeakReferences,WeakReferences会自动从ReferenceQueue中删除吗?
我们使用策略作为终结器的替代方案,如下所述: http://resources.ej-technologies.com/jprofiler/help/doc/indexRedirect.html?http&&&resources.ej-technologies.com/jprofiler/help/doc/helptopics/config/finalizers.html
但我们不希望有另一个线程来从 ReferenceQueue 中删除 PhantomReference。
因此我们使用 WeakReferences 来代替,假设它们会自动从 ReferenceQueue 中删除。这是一个正确的假设吗?谢谢。
最佳答案
是的,你是对的。除非一些古怪的最终代码使它们复活。
这里有一篇很好的文章解释了这种情况:https://weblogs.java.net/blog/enicholas/archive/2006/05/understanding_w.html
关于java - ReferenceQueue 中的 WeakReference 是否会自动从队列中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20407225/