BufferedReader stdin 在这里我估计只是让主线程暂时不结束,因为其他的线程都是Daemon线程,yield()好像是让当前线程临时中断让其它的线程执行

解决方案 »

  1.   

    设成daemon线程,在后台运行,主程序结束就结束了,不用等线程结束
    yield是放弃时间片,让其他线程运行
    用stdin是让你敲个回车,程序就结束运行,而在这之前会有足够时间等所有创建的线程打出他们的输出,否则你看不到全部输出
      

  2.   

    这个程序好像基本什么都没有做嘛
    setDaemon(true)说明这个一个后台线程,JVM会等待所有非Daemon的线程结束的时候退出
    调用这个方法以后,就是告诉JVM不必等待这个线程结束才退出yield()每个线程会不断得到一个系统分配的时间片,在这个时间片之中线程才会真正的执行
    代码,当时间片到达结尾时候,线程会暂时停止执行交给另外的线程执行。yield()就是线程
    执行这个方法以后会放弃当前的时间片,交给其它的线程。BufferedReader stdin只是为了可以使用readLine的方法而已,System.in没有这功能