一、守护线程的理解
- 守护线程会在非守护线程执行完毕时就结束,即使自己还没有执行完。
- 简单理解即别的线程停止运行守护线程也停止运行。
- 守护线程最典型的应用就是 GC (垃圾回收器),它就是一个很称职的守护者。
- 在Thread类中提供了一个setDaemon(true)方法来将一个普通的线程(用户线程)设置为守护线程
案例描述:设置d1为守护线程,主线程运行2秒后结束,查看d1守护线程是否还再运行。
1、代码
package com.xz.thread.t1;
/**
* @description: 守护线程案例
* @author: xz
*/
public class Demo2 extends Thread{
//构造方法
public Demo2(String name){
super(name);
}
@Override
public void run() {
while(true){
System.out.println(getName()+"——运行......");
}
}
public static void main(String[] args) {
Demo2 d1 = new Demo2("线程1");
//设置线程t1为守护线程
d1.setDaemon(true);
d1.start();
//设置主线程运行2秒后结束
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
2、运行结果如下图: 3、结论
- 由第2步可知,主线程结束后,d1守护线程立即停止。