搜索
您的当前位置:首页【并发】并发的基础概念(八)

【并发】并发的基础概念(八)

来源:乌哈旅游

在 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...");
    }
}

在这个示例中:

  1. 创建了一个新的线程 daemonThread,它会在后台不断打印 “Daemon thread is running…”。
  2. 使用 setDaemon(true) 将这个线程设置为守护线程。
  3. 启动守护线程。
  4. 主线程休眠 2 秒钟后结束。

当主线程结束后,守护线程会自动终止,因为没有其他非守护线程在运行,JVM 也随之退出。通过这个示例,可以看到守护线程在后台运行,并且会随着主线程的结束而自动终止。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top