对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 阅读(457)
评论(0) 编辑 收藏 所属分类:
Android