后台线程、守护线程、精灵线程,一个意思,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线程执行完毕之后,后台线程会自动结束