對Java程序來說,只要還有一個前臺線程在運行,這個進程就不會結束,如果一個進程中只有后臺線程在運行,這個進程就會結束。前臺線程是相對后臺線程而言的,前面所介紹的線程都是前臺線程。那么什么樣的線程是后臺線程呢?如果某個線程對象在啟動(調用start()方法)之前調用了setDaemon(true)方法,這個線程就變成了后臺線程。下面來看一下進程中只有后臺線程在運行的情況,如下所示:
范例:ThreadDaemon.java
01 public class ThreadDaemon
02 {
03 public static void main(String args[])
04 {
05 ThreadTest t = new ThreadTest() ;
06 Thread tt = new Thread(t) ;
07 tt.setDaemon(true) ; // 設置后臺運行
08 tt.start();
09 }
10 }
11
12 class ThreadTest implements Runnable
13 {
14 public void run()
15 {
16 while(true)
17 {
18 System.out.println(Thread.currentThread().getName()+"is running.");
19 }
20 }
21 }
從上面的程序和運行結果(圖9-4)上,可以看到:雖然創建了一個無限循環的線程,但因為它是后臺線程,整個進程在主線程結束時就隨之終止運行了。這驗證了
進程中只有后臺線程運行時,進程就會結束的說法。
posted on 2013-05-23 09:09
Terry Zou 閱讀(460)
評論(0) 編輯 收藏 所屬分類:
Android