我的程序使用了幾個Swingworker
線程,我需要釋放每個線程的內存完成後。無論我的線程通過完成doInBackground()
方法終止,還是被cancel()
停止,線程本身都停留在那裏(它仍然顯示在Jconsole中)。如何釋放Swingworker分配的內存?
我取消引用Swingworker
實例並強制進行垃圾回收,但是我的Java進程從不釋放任何內存(例如Windows任務管理器所示)。
我該如何徹底刪除已終止的Swingworker
線程?
或者我怎麼能在一些複雜的處理過程中釋放它在幾個地方分配的內存?
任何建議是最感謝。謝謝。
好的, 謝謝。看來你的聲明JVM不願意將內存返回給操作系統,這是對正在發生的事情的正確解釋。而且,是的,當我強制垃圾收集時,JConsole確實顯示堆內存已經返回。 – Lulach 2010-12-21 09:44:56