class DaemonThread extends Thread
{
public void run()
{
for(int i=0;i<50;i++)
{
System.out.println(super.getName()+"-"+super.isDaemon());
}
}
}
public class DamonDemo {
public static void main(String[] args)
{
System.out.println(Thread.currentThread().isDaemon());
for(int i=0;i<50;i++)
{
System.out.println("main"+i);
if(i==10)
{
DaemonThread t=new DaemonThread();
t.setDaemon(true);
t.start();
}
}
}
}
创建线程后用setDaemon将线程设置为后台,必须先设置后开启不然会报错
可以发现,后台线程和主线程一起运行,当主线程运行完时
明明设置后台线程输出500次,它却到22次就停下了,因为这时主线程已经执行完了,后台线程边反应边又执行了几毫秒就停下了,理论上当所有前台线程关闭时,后台线程必须关闭