守护线程是一种特殊的线程.就和他的名字一样,他是系统的守护者,在后台默默的完成一些系统性的任务,与之对应的是用户线程,用户线程可以认为是系统工作线程,他会完成这个程序应该要完成的业务操作.如果用户线程全部结束,这也意味着这个程序实际上无事可做了.守护线程要守护的对象已经不存在了,那么整个应用程序就自然应该结束. 因此 当一个Java应用内,只要守护线程时,Java虚拟机就会自然退出
public class DaemonDemo { public static class DaemonT extends Thread { public void run() { while (true) { System.out.println("I am alive"); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } } public static void main(String[] args) throws InterruptedException { Thread t = new DaemonT(); t.setDaemon(true); t.start(); Thread.sleep(2000); } } }