在 Java 中,守护线程(Daemon Thread)是一种在后台运行的线程,它的主要作用是为其他线程提供服务和支持。例如,垃圾回收线程就是一个典型的守护线程。守护线程的一个重要特性是:当所有非守护线程(用户线程)都结束时,Java 虚拟机 (JVM) 会自动退出,无需等待守护线程的结束。
守护线程的特点和使用场景包括:
以下是一个示例代码,展示了如何创建和使用守护线程:
public class DaemonThreadDemo {
public static void main(String[] args) {
Thread daemonThread = new Thread(() -> {
while (true) {
System.out.println("Daemon thread is running...");
try {
Thread.sleep(1000); // 模拟后台任务
} catch (InterruptedException e) {
e.printStackTrace();
}
}
});
// 将线程设置为守护线程
daemonThread.setDaemon(true);
daemonThread.start();
// 主线程休眠2秒,然后结束
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("Main thread is ending...");
}
}
在这个示例中:
daemonThread
,它会在后台不断打印 “Daemon thread is running…”。setDaemon(true)
将这个线程设置为守护线程。当主线程结束后,守护线程会自动终止,因为没有其他非守护线程在运行,JVM 也随之退出。通过这个示例,可以看到守护线程在后台运行,并且会随着主线程的结束而自动终止。
因篇幅问题不能全部显示,请点此查看更多更全内容