- 守护线程
* 当一个进程中的所有的前台线程都结束时,进程结束,
* 无论后台线程(守护线程)是否还在运行都要强制中断.
* 前程线程都结束才会结束的线程:守护线程
下面通过简单实例演示
public class ThreadDemo9 {
public static void main(String[] args) {
/*
* rose:扮演者为前台线程
*/
Thread rose = new Thread(){
@Override
public void run() {
for(int i=0;i<5;i++){
System.out.println("rose:let me go !");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("rose:啊啊啊啊AhAhAhAhAhAhAh");
System.out.println("特效:噗通...");
}
};
Thread jack = new Thread(){
@Override
public void run() {
while(true){
System.out.println("jack:you don't jump ! i come!");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
//设置jack为后台线程 【守护线程】
jack.setDaemon(true);
rose.start();
jack.start();
}
}
程序运行控制台截图
:
如果不设置守护线程的截图如图:
总结:上面实例中,守护线程jack在前台线程结束后便会强制结束。
如果某个线程需要其它线程提供资源,当其结束后,给它提供资源的线程就要关闭,
这个时候可以将提供资源的线程设置为守护线程。