后台线程、守护线程、精灵线程,一个意思,JVM的垃圾回收线程就是典型的后台线程
特点:当所有的前台线程死亡,后台线程也就自动死亡了
public class DaemonThread extends Thread { private int i; @Override public void run() { for (; i < 100; i++) { System.out.println(getName() + ":" + i); } } public static void main(String[] args) { // TODO Auto-generated method stub DaemonThread dt=new DaemonThread(); System.out.println("dt为后台线程?"+dt.isDaemon()); dt.setDaemon(true);//将它设置为后台线程,必须在start之前设置,否则会有IllegalThreadStateException System.out.println("dt为后台线程?"+dt.isDaemon()); dt.start(); for (int i=0; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ":" + i); } } }
注意:前台线程的子线程是前台线程,后台线程的子线程是后台线程。
上面这个例子dt线程是无法输出到99的,main线程执行完毕之后,后台线程会自动结束