Java守护线程setDaemon

守护线程:

为用户线程进行服务的线程.当所有的用户线程都执行结束以后无论守护线程的线程体是否执行完,守护线程都会结束

 

设置守护线程
void  setDaemon(boolean on) 将该线程标记为守护线程或用户线程。


t.setDaemon(true);

MyThread01.java
public class MyThread01 implements Runnable {

   public void run() {
      for (int i = 1; i <= 100; i++) {
        System.out.println(Thread.currentThread().getName() + "~~~" + i);
      }
   }
}

MyThread02.java

public class MyThread02 extends Thread {
   public void run() {
      for (int i = 1; i <= 100; i++) {
        System.out.println(this.getName() + "*_*" + i);
      }
   }
}

Test.java

public class Test {
   public static void main(String[] args) {
      Thread t1 = new Thread(new MyThread01());
      Thread t2 = new MyThread02();
      // 把t2 设置为守护线程
      // 守护线程:为用户线程进行服务的线程.当所有的用户线程都执行结束以后
      // 无论守护线程的线程体是否执行完,守护线程都会结束
      t2.setDaemon(true);
      t1.start();
      t2.start();
      for (int i = 1; i <= 100; i++) {
        System.out.println(Thread.currentThread().getName() + "<><>" + i);
      }
   }
}

注意: main 线程是主线程,不是守护线程,也不能设置为守护线程。

 

判断守护线程的方法
boolean   isDaemon() 测试该线程是否为守护线程。

t2.isDaemon();