Java 守护线程 Daemon Thread

更多 Java 并发编程方面的文章,请参见文集《Java 并发编程》


守护线程 Daemon Thread

  • low priority thread,例如 GC
  • 与 User Thread 相对应。如果所有的 User Thread 全部结束,则 Daemon Thread 也结束(即使没有执行完),JVM 退出。
  • 使用 t.setDaemon(true) 将某个线程设置为 守护线程

例如,如下的代码子线程需要执行 1000 毫秒,但是由于设置为守护线程,因此主线程不会等待子线程执行结束,而是提前退出。

public class DaemonThread_Test {
    public static void main(String[] args) {
        DaemonThread t = new DaemonThread();
        // 设置为 守护线程
        t.setDaemon(true);
        t.start();
    }
}

class DaemonThread extends Thread {
    public void run() {
        System.out.println(Thread.currentThread().getName() + " start");

        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
        }

        System.out.println(Thread.currentThread().getName() + " end");
    }
}

你可能感兴趣的:(Java 守护线程 Daemon Thread)