但是如果你去掉main()中的for循环,就打印不出来了这是为什么?

解决方案 »

  1.   

    去掉main不能打印是因为在A运行到 System.out.println("A done"); 这行语句之前
    线程B已经结束,main函数已经结束。 JVM已经认为可以停止工作退出了,所以线程A的打印语句没有机会执行
    如果你的线程B sleep(3000)  这样线程A就可以打印了
      

  2.   

    守护线程其实很一般线程没什么区别
    只是它作为后台的线程,一直执行到所有其他线程都结束了
    你这里打印出结果是因为B和main线程都已经结束了啊
    系统就提醒AA,就顺理成章地打印了啊
      

  3.   

    各位大哥那为什么 打印的时候是先 打印出A done后才打出B done 啊
      

  4.   

    ^_^,楼主这是线程问题,谁先用到cpu谁就打印出来,你运行多几次一定有B done先于A done的