我的web應用程序中有一個靜態的ThreadLocal對象,在處理請求之前,我正在使用web servlet過濾器類中的某個默認值進行初始化。在應用程序中,其他幾個類(如處理器)使用並更新其值。我已閱讀過一些文章,使用ThreadLocal創建的對象仍然與線程關聯,儘管請求過程已完成,因爲線程維護在由容器管理的池中。如果不從ThreadLocal變量中移除對象,這會導致內存泄漏。哪個是刪除Thread Local對象引用的最好方法
我在這方面有兩個問題。
在下面的選項中,哪一個是刪除其引用以防止內存泄漏的最佳方法。
ThreadLocal obj; 1) obj.remove(); // remove the contents of ThreadLocal. 2) obj.set(""); // set some default value 3) obj.set(null); // set null
對(1)的回答是(1),或讓線程退出。第二個問題是不可理解的。 – EJP
轉載了我的第二個問題? – kswaughs