守护(Daemon)线程
- 线程分为用户线程和守护线程
- 虚拟机必须确保用户线程执行完毕
- 虚拟机不必等待守护线程执行完毕
- 使用
setDaemon()方法将线程设置为守护线程(默认为用户线程)
- 守护线程的默认优先级比较低
- 如:后台日志、监控内存、垃圾回收等等
例:
public class TestDaemon {
public static void main(String[] args) {
God god = new God();
You you = new You();
Thread t1 = new Thread(god);
t1.setDaemon(true);
t1.start();
new Thread(new 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");
}
}