- 线程分为用户线程和守护线程
- 虚拟机必须确保用户线程执行完毕
- 虚拟机不用等待守护执行完毕
- 如,后台记录操作日志,监控内存,垃圾回收等
也就是说,用户线程单独存在,不会因为其他线程而影响它的运行,但是守护线程依赖用户线程存在,只要用户线程全部执行完毕,守护线程也会退出,虚拟机不用等待守护线程执行完毕。
public class TestDaemon {
public static void main(String[] args) {
God god = new God();
You you = new You();
Thread thread = new Thread(god);
thread.setDaemon(true);
thread.start();
new Thread(you).start();
}
}
class God implements Runnable {
@Override
public void run() {
while (true) {
System.out.println("上帝保护着你");
}
}
}
class You implements Runnable {
@Override
public void run() {
for (int i = 0; i < 36500; i++) {
System.out.println("你一生都开心的活着");
}
System.out.println("-====goodbye| world===");
}
}