我的程序使用了几个Swingworker
线程,我需要释放每个线程的内存完成后。无论我的线程通过完成doInBackground()
方法终止,还是被cancel()
停止,线程本身都停留在那里(它仍然显示在Jconsole中)。如何释放Swingworker分配的内存?
我取消引用Swingworker
实例并强制进行垃圾回收,但是我的Java进程从不释放任何内存(例如Windows任务管理器所示)。
我该如何彻底删除已终止的Swingworker
线程?
或者我怎么能在一些复杂的处理过程中释放它在几个地方分配的内存?
任何建议是最感谢。谢谢。
好的, 谢谢。看来你的声明JVM不愿意将内存返回给操作系统,这是对正在发生的事情的正确解释。而且,是的,当我强制垃圾收集时,JConsole确实显示堆内存已经返回。 – Lulach 2010-12-21 09:44:56