【发布时间】:2013-05-26 20:19:24
【问题描述】:
线程是在运行后自行删除并收集垃圾,还是在 run() 方法完成后仍继续存在并消耗内存?
例如:
Class A{
public void somemethod()
{
while(true)
new ThreadClass().start();
}
public class ThreadClass extends Thread{
public ThreadClass()
{}
@Override
public void run() {......}
}
}
我想澄清一下这个线程是否会自动从内存中删除,或者是否需要明确地完成。
【问题讨论】:
-
请注意,我们鼓励您使用
Tasks 而不是直接使用线程。两者在使用后都会被垃圾回收,就像任何其他 Java 对象一样。 -
@owlstead:你的意思是 AsyncTask?
-
可能与以下内容重复:stackoverflow.com/questions/2423284/…
-
这样说吧:即使存在,你也无法访问(因为没有引用它),同理,线程完成后会被垃圾回收! :)
-
@Rick77 appologies,我的意思是像
FutureTask这样的任务,还有一个执行者......
标签: java android multithreading