when all of your threads died ,the daemon will automaticly die.

解决方案 »

  1.   

    因为主线程(main thread)的优先级是5,而deamon的优先级也是5。主线程在你的程序开始的时候(也就是进入main方法的时候),就已经开始运行了。至于守护线程,java中的守护线程与普通线程是基本相似的。守护线程是服务于普通线程的(gc就是守护线程)。当系统中的普通线程全部正常退出或被停止后,如果守护线程处于运行状态,则虚拟机不退出,等待守护线程执行;如果守护线程处于block状态,则虚拟机直接退出。
      

  2.   

    呵呵,楼上说的很好,偶补充一点,打个比方:非daemon线程是干实事的,是你的程序中的主人,
    而daemon线程就是仆人,干些杂役,主人们要走,那仆人们也就跟着走了。