Java中的守护程序线程

守护程序线程是作为低优先级线程运行的后台服务线程,并执行后台操作(如垃圾回收)。如果仅剩余守护程序线程,则JVM退出。

Thread类的setDaemon()方法用于将特定线程标记/设置为守护程序线程或用户线程。当仅运行的所有线程都是守护程序线程时,Java虚拟机将退出。必须在线程启动之前调用此方法。

示例

class adminThread extends Thread {
   adminThread() {
      setDaemon(false);
   }
   public void run() {
      boolean d = isDaemon();
      System.out.println("daemon = " + d);
   }
}

public class Tester {
   public static void main(String[] args) throws Exception {
      Thread thread = new adminThread();
      System.out.println("thread = " + thread.currentThread());
      thread.setDaemon(false);
      thread.start();
   }
}

输出结果

thread = Thread[main,5,main]
daemon = false