分享

线程

 天天new 2013-05-11

在Java中有两类线程:用户线程 (User Thread)、守护线程 (Daemon Thread)。 

所谓守护线程,是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。

用户线程和守护线程两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果用户线程已经全部退出运行了,只剩下守护线程存在了,虚拟机也就退出了。 因为没有了被守护者,守护线程也就没有工作可做了,也就没有继续运行程序的必要了。

class   A   implements   Runnable{  

          public   void   run(){  
                  for(;;){  
                          System.out.println("Thread   A   run");  
                  }  
          }  
   
          public   static   void   main(String[]   args){  
                  System.out.println("Thread   main   started!");  
                  try{  
                          Thread   a   =   new   Thread(new   A());  
                          a.setDaemon(true);  
                          a.start();  
                  }   catch(Exception   e){  
                  }  
                  System.out.println("Thread   main   ended!");  
          }  
  };  
   
  main   线程一退出,虚拟机就退出了,因为剩下在跑的   a   线程是守护线程,虚拟机不管它的死活的,直接退出了。 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多