如果我有多个指向同一个对象的弱引用,并且没有强引用。我可以确定当其中一个返回对象时,这两个弱引用是否完好无损?对同一个对象的多个弱引用是否被清除?
3
A
回答
1
WeakReference wr1 = new WeakReference(objX);
...//somewhere else
WeakReference wr2 = new WeakReference(objX);
现在:
- 如果在某一时刻wr1.get()返回非空,然后wr2.get()将返回非空过。
- 但是wr1和wr2对象本身是独立的gc-ed,它们的gs路径彼此独立,最重要的是独立于objX。
相关问题
- 1. 是否可以确定一个对象是否被另一个对象引用?
- 2. 弱引用被清零,但对象未被释放
- 3. 是否可以在同一个对象内引用对象?
- 4. 我如何知道对象是否可以被弱引用?
- 5. 如何在删除前检查对象是否被引用? (多对多关系)
- 6. Java中一个对象与另一个对象的弱关联?
- 7. 获取对同一个方法的多个引用=多个对象?
- 8. 确定一个对象是否被多个线程访问?
- 9. Boost.Python:对对象的弱引用?
- 10. snakeYaml引用一个对象的同一个实例多次
- 11. .NET XmlSerializer和对同一对象的多个引用
- 12. 从std :: vector中清除多个对象?
- 13. 验证对象是否有一个或多个关联对象
- 14. 这是否返回一个引用或一个新的对象?
- 15. 每一个对象被引用
- 16. 对象只被多个线程读取,是否需要同步
- 17. 当我删除一个对象时,被删除的对象是否也被删除了?
- 18. 检查linq对象是否被引用
- 19. 弱引用被dealloced对象是零,dealloc中完成之前
- 20. 在c#中如何知道一个弱引用的对象是否会被垃圾收集?
- 21. 由一个迭代器引用的对象已被其他对象擦除
- 22. 使用弱引用来检查对象是否被释放,在Objective-C
- 23. 确定弱引用的对象是否已释放
- 24. 2对同一对象的弱引用显示不同的信息
- 25. 两个对象有相同的引用是绝对相同的?
- 26. 如何“清除”一个对象?
- 27. php - 重置/清除一个对象?
- 28. as3:检查一个对象是否被另一个对象明显阻塞
- 29. Javascript对象多个引用
- 30. ZODB多个对象引用
他们将全部设置或清除在一起。但是,如果您依赖于这一事实,我会重新考虑您的设计,因为从一条指令到另一条指令可能会改变。 – 2011-06-17 08:57:52
@Peter_Lawrey我完全相信他们会一起被删除,尽管它可能看起来合乎逻辑。无论如何,依靠功能代码将是一个完全的噩梦。 – Riduidel 2011-06-17 09:05:00
我主要是从理论的角度提出这个问题。我想知道在设计中对同一个对象使用多个弱引用是否安全。我正在考虑使用任务对象,一旦任务完成,我将删除所有强引用。但是,如果稍后检索完成的任务,则需要确保我的模型仍处于一致状态,以便可以跳过其他检查。 – Dorus 2011-06-17 09:19:48