屬性存活多久
回答
理論上,一個變量只要至少有一個活動引用就保持活動狀態。就你而言,只要包含你的財產的對象仍然在「範圍內」,你的財產的價值就會保留在內存中。對於靜態變量或在main()函數中創建的或屬於應用程序或服務基礎對象的靜態變量,只要程序運行,它就會保留在內存中。
但是,一個月是期待線程運行的很長時間。如果線程遇到一個無法處理的錯誤,它將會終止,並且你失去了線程沒有保存到文件系統或數據庫的所有東西。另外,Web應用程序保存在「應用程序池」中,即使在用戶會話的上下文中,應用程序池也可以「回收」,並且只是在內存中閒置的所有內容都會丟失。因此,如果這些數據在線程運行後或線程之間非常重要,那麼當您的線程開始業務時將其保存在某處。
他們還活着,直到他們被垃圾收集 - 所以,如果你離開你的應用程序中運行的下一個百年,而性能保持你的應用程序的使用範圍內,該值將持續無限期。但是,如果您計劃進行長期存儲,那麼數據庫可能會更聰明,因爲您的值將被刪除,例如,如果對象持久化值被移除/解構,應用程序停止,出錯或計算機重置等。
請記住,數據庫可以是任何持久存在的值,無論是平面文件,分層結構還是關係數據庫。
只要您的程序可以保持運行超過一個月,數據就會在那裏。這聽起來像你應該真的使用數據庫。如果您斷電或需要重新啓動服務器進行維護會發生什麼情況?
只要您的應用程序保持生命,您的屬性將保持活動狀態。一個月是一個應用程序坐在那裏很長時間 - 如果你想確保你永遠不會丟失數據,我建議使用數據庫。
thx爲您的答案 – senzacionale 2010-10-26 20:04:17
線程是一個執行的路徑,而不是一個對象。對象具有可以存儲數據的屬性。對象(和它們的屬性)並不真正生活在一個線程,儘管一個線程可以對它們起作用。線程可以在應用程序執行過程中來回移動。對象在不再被引用後被垃圾收集器刪除。這樣的代碼...
Object o = new Object();
...做兩件事情1)創建一個對象,2)創建該對象(鄰的引用)。如果你設置了o = null;
,你已經刪除了該對象的唯一引用,並且垃圾收集器很快就會清理它。應用程序中的線程或對象都不會比應用程序本身的運行時間長;當程序結束執行並且進程空間被破壞時,它們都將被擦除。任何需要活躍進程的數據都應該存儲到文件或數據庫表等中。數據可以通過位於線程執行的函數之外的引用的對象中而輕鬆地超越線程,但它不會超越處理。
- 1. Android ViewTreeObserver存活多久?
- 2. 春季初始化bean存活多久?
- 3. OAuth2令牌應該存活多久?
- 4. Eclipse持久屬性
- 5. 什麼是持久性餅乾?它們存在多久?
- 6. 多對多持久性
- 7. 多對多GSP持久性
- 8. 持久rightBarButtonItem UINavigationItem的屬性
- 9. 實現Python持久屬性
- 10. 在版本控制中存儲持久性資源屬性
- 11. '多對一'屬性類型不應該是'持久性實體'
- 12. 非永久性ActiveRecord模型屬性
- 13. 缺少代碼屬性javax持久性
- 14. 動態設置JPA持久性屬性
- 15. Window對象和屬性持久性
- 16. 錯誤kundera.client屬性缺少持久性
- 17. Angular2 - 活性窗體屬性
- 18. NSURLConnection緩存持久性
- 19. 存儲永久性Cookie
- 20. 高速緩存持久性
- 21. BlackBerry持久性存儲
- 22. Android會保存一個被殺活動的狀態多久?
- 23. 爲數據()分配的jquery數據存活多久?
- 24. JPA多持久性持久性單元和JTA事務
- 25. 目標C核心數據 - 屬性不會被保存持久
- 26. 核心數據遷移不會持久存在新屬性
- 27. 在mailitem和相關的.msg文件中永久存儲屬性
- 28. 無法從Phalcon永久存儲中刪除屬性(會話袋)
- 29. Drupal緩存持續多久?
- 30. 廣播存在多久?
thx爲您的答案 – senzacionale 2010-10-26 20:05:13