线程是否自行删除并在运行后得到垃圾回收,或者即使在run()
方法完成后仍会继续存在并消耗内存?run()方法在Java中退出后线程是否会自动收集垃圾回收?
例如:
Class A{
public void somemethod()
{
while(true)
new ThreadClass().start();
}
public class ThreadClass extends Thread{
public ThreadClass()
{}
@Override
public void run() {......}
}
}
我想澄清这是否线程会从内存中被自动删除,或者它需要显式地完成。
请注意,我们鼓励您使用'任务'而不是直接使用线程。两者在使用后都会收集垃圾,就像任何其他Java对象一样。 –
@owlstead:你的意思是AsyncTask? – Rick77
可能是下面的一个可能的副本:http://stackoverflow.com/questions/2423284/java-thread-garbage-collected-or-not – awsome