与前台线程的区别:
- 开启、运行都没有区别,只有结束有区别:要前台线程结束后,后台线程才会结束,而且是自动结束的。
//t1,t2为守护线程时,只有主线程是前台线程,挡住线程结束时,两个守护线程会自动结束。
class StopThread implements Runnable{
private boolean flag = true;
public synchronized void run(){
while(flag){
System.out.println(Thread.currentThread().getName()+".....run");
}
}
public void changeFlag(){
flag = false;
}
}
class StopDemo{
public static void main(String[] args){
StopThread st = new StopThread();
Thread t1 = new Thread(st);
Thread t2 = new Thread(st);
t1.setDaemon(true); //将t1设置为守护线程
t2.setDaemon(true); //将t2设置为守护线程
t1.start();
t2.start();
int num = 0;
while(true){
num++;
if(num == 60){
//st.changeFlag();
//t1.interrupt(); //中断线程t1,
//t2.interrupt();
break;
}
System.out.println(Thread.currentThread().getName()+".............."+num);
}
}
}