package seday08.thread;
/**
* @author xingsir
* 守护线程又称为后台线程,默认创建出来的线程都是普通线程, 守护线程需要通过调用线程方法:setDaemon(boolean on)来进行设置。
* 守护线程使用上与普通线程没有区别,但是在结束时机上有一个 不同之处:进程结束时,所有正在运行的守护线程都会被强制停止。
* 而进程结束:当一个进程中所有的普通线程结束时进程结束
* 我们也可以将某些会一致运行的任务,并且当主要业务执行完毕 后可以跟着一同结束的就都放在守护线程上运行即可。
*/
public class DaemonThreadDemo {
public static void main(String[] args) {
//
Thread alin =new Thread() {
public void run() {
for(int i=0;i<6;i++) {//循环6次,跑6圈
System.out.println("alin跑"+i+"圈");//打印圈数
try {
Thread.sleep(1000);//设置阻塞指定的10000毫秒
} catch (InterruptedException e) {
}
}
System.out.println("alin:我跑完了....");
System.out.println("结束!");//观察marck也结束了
}
};
Thread marck = new Thread() {
public void run() {
while(true) {//这里设置为一直循环下去,也就是marck会一直跑
System.out.println("marck跟一圈");
try {
Thread.sleep(1000);//设置阻塞指定的10000毫秒
} catch (InterruptedException e) {
}
}
}
};
alin.start();//启动线程要调用start
//线程启动前进行设置
marck.setDaemon(true);//设置为守护线程,此时若alin跑完,marck也跟着跑完,
marck.start();//启动线程要调用start
}
}