守护线程是一种特殊的线程,是在后台完成一些系统性的服务。如垃圾回收线程、JIT线程。与守护线程相对的就是用户线程,用户线程可以认为是系统的工作线程。
当一个 Java 程序只有守护线程时,Java 虚拟机就会退出。
package com.demo.base;
public class ThreadDemo {
public static void main(String[] args) {
Thread daemonT = new Thread(new MyRunnable(), "守护线程");
// 设置 daemonT 线程为守护线程
daemonT.setDaemon(true);
daemonT.start();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("用户线程退出");
}
}
class MyRunnable implements Runnable {
@Override
public void run() {
String name = Thread.currentThread().getName();
System.out.println("线程: " + name + " 开始执行。。。");
int i = 0;
while (true){
System.out.println("线程: " + name + "---" + i);
i++;
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}