如果我有多個指向同一個對象的弱引用,並且沒有強引用。我可以確定當其中一個返回對象時,這兩個弱引用是否完好無損?對同一個對象的多個弱引用是否被清除?
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