2012-02-29 66 views
2

我一直在找,我真的没有找到答案。我知道最好自己停止线程,但我一直在想,当我忘记阻止它们时会发生什么。如果我创建一个新线程并让它运行某个任务,那么当任务完成时线程会发生什么?例如会发生什么的线程在这种情况下:Android - 做线程自行停止?

Thread t = new Thread(new Runnable(){ 

     public void run() { 
      for (int i = 0;i<10;i++){ 
       foo; 
      } 
     } 
    }); 
t.start(); 

是否线程t自动停止,它只是一味地吃起来的资源呢,还是做点别的?

回答

2

run()完成时,线程结束,是的。这是而不是好的做法stop()一个线程,如果这就是你的意思。

4

当运行方法结束时,线程将停止。在你的例子中,这是在for循环的10次迭代之后,假设foo没有阻塞。如果没有更多的这个线程的引用,它将被JVM垃圾回收。

+0

感谢您的回答。在我告诉它运行之后,我从来不确定线程​​发生了什么,而你的回答会清除一些东西。 – 2012-02-29 23:20:34

0

如果不是守护进程,它将不会消耗任务完成后的所有资源。