2012-02-29 64 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

如果不是守護進程,它將不會消耗任務完成後的所有資源。