我正在研究Web服務和創建線程本地實例,並且只希望在應用程序關閉期間刪除它們(一旦爲線程創建threadlocal對象,我希望在不同服務期間使用該對象調用該線程)。由於線程是由tomcat創建和擁有的,有什麼辦法在應用程序關閉期間刪除這些threadlocals?在應用程序關閉時刪除tomcat線程上的threadLocal對象
3
A
回答
1
Tomcat的6有內存泄漏檢測到位,和Tomcat 7的實際排除邏輯 - 它會自動刪除所有的線程本地對象爲您提供:http://wiki.apache.org/tomcat/MemoryLeakProtection
理想情況下,你應該從線程本地刪除所有對象請求完成後, ,因爲同一個線程將被放回到線程池並用於處理其他請求 - 在這種情況下,線程本地值可能會干擾後續的請求邏輯,並且會導致所有類型的安全問題。
但是,如果你專門找保持線程值的局部爲Tomcat Web應用程序生命週期的整個過程 - Tomcat的7將清除它適合你的Web應用程序停機的照顧,認爲它是垃圾收集。
相關問題
- 1. 刪除對象時刪除線程
- 2. 應用程序關閉後刪除使用的程序集
- 3. wxpython關閉線程的應用程序
- 4. 在Java中,如何在線程完成時關閉ThreadLocal資源
- 5. 如何在應用程序關閉時刪除文件
- 6. 如何在應用程序關閉時刪除圖像緩存?
- 7. 如何在silverlight應用程序關閉時刪除cookie?
- 8. 我們可以在關閉應用程序時刪除SharedPreferences
- 9. 應用程序關閉時的用戶狀態,已刪除iOS
- 10. 清除應用程序上的絕對緩存關閉Ipad應用程序
- 11. 關閉多線程應用程序
- 12. 如何在應用程序停用時關閉線程?
- 13. 從iOS中刪除應用程序時刪除服務器上的對象
- 14. 應用程序異常關閉時刪除RabbitMQ隊列
- 15. 應用程序在運行線程關閉時崩潰
- 16. 如何在應用程序窗口關閉時中止線程
- 17. 線程不會在應用程序關閉時中止
- 18. 在關閉android應用程序時停止線程?
- 19. 在關閉應用程序時:如何停止線程?
- 20. ThreadLocal對象在線程返回到線程池之後會被清除嗎?
- 21. 關閉應用程序並從最近的應用程序中刪除/
- 22. 如何關閉tomcat中的單個應用程序(上下文)?
- 23. 從應用程序中刪除應用程序時刪除應用程序的相關下載
- 24. Backgroundworker線程不關閉程序關閉?
- 25. iPhone應用程序在iPad上關閉
- 26. 關閉應用程序後會刪除HTTP會話(iPhone應用程序)
- 27. 如何在應用程序關閉後刪除gps更新
- 28. 如何在關閉應用程序之前刪除openssl dll
- 29. 禁用或刪除uwp應用程序中的關閉按鈕
- 30. 應用程序在關閉時崩潰(?)?
添加一個關閉掛鉤線程和釋放線程本地,它只在應用程序關閉時運行。 'Runtime.getRuntime()#addShutdownHook()' –
[關閉鉤子for java web應用程序]的可能的重複(http://stackoverflow.com/questions/1549924/shutdown-hook-for-java-web-application) –
可能重複的[如何清理threadlocals](http://stackoverflow.com/q/3869026/17300) –