daemon不属于程序本身,当所有非daemon线程结束后,程序就中止了.

解决方案 »

  1.   

    把first.setDaemon(true)去掉。你可能对daemon thread的理解有误
    摘自JDK Document
    Machine exits when the only threads running are all daemon threads.
      

  2.   

    xu_yun 说得差不多。但是并不是所有非daemon线程都结束,程序就一定会终止。daemon线程如果不是处于blocked状态的话,程序也是会继续执行的。因此去掉Thread.sleep(10000L);就可以了。
      

  3.   

    或者在主线程中Thread.sleep(20000L);