Java 中的守护线程

java programming java8object oriented programming

守护线程是后台服务线程,它作为低优先级线程运行并执行垃圾收集等后台操作。如果只剩下守护线程,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

相关文章