zoukankan      html  css  js  c++  java
  • 守护线程

    Java的线程分为两种:User Thread(用户线程)、DaemonThread(守护线程)。

    守护线程:守护线程指提供某种服务的线程,当系统中只有此线程时,程序就终止了。

    将线程转换为守护线程可以通过调用Thread对象的setDaemon(true)方法来实现。

    在Daemon线程中产生的新线程也是Daemon的。

    守护线程应该永远不去访问固有资源,如文件、数据库,因为它会在任何时候甚至在一个操作的中间发生中断。

    thread.setDaemon(true)必须在thread.start()之前设置

    例子

     1 public static void main(String[] args) {
     2         // TODO Auto-generated method stub
     3         Thread t1 = new Thread(){
     4             public void run(){
     5                 try {
     6                     Thread.sleep(1000);
     7                 } catch (InterruptedException e) {
     8                     // TODO Auto-generated catch block
     9                     e.printStackTrace();
    10                 }
    11                 for(int i=0; i<1000; i++){
    12                     System.out.println("守护线程");
    13                 }
    14             }
    15         };
    16         Thread t2 = new Thread(){
    17             public void run(){
    18                 try {
    19                     Thread.sleep(1000);
    20                 } catch (InterruptedException e) {
    21                     // TODO Auto-generated catch block
    22                     e.printStackTrace();
    23                 }
    24                 for(int i=0; i<5; i++){
    25                     System.out.println("非守护线程");
    26                 }
    27             }
    28         };
    29         
    30         t1.setDaemon(true);//t1设置为守护线程
    31         t1.start();
    32         t2.start();
    33     }

    结果:

    //结果守护线程并不会执行1000次,非守护线程结束后,守护线程随之结束,守护线程可以作为服务存在,典型应用时垃圾回收器

     1 非守护线程
     2 非守护线程
     3 非守护线程
     4 非守护线程
     5 非守护线程
     6 守护线程
     7 守护线程
     8 守护线程
     9 守护线程
    10 守护线程
    11 守护线程
    12 守护线程
    13 守护线程
    14 守护线程
    15 守护线程
    16 守护线程
    17 守护线程
    18 守护线程
    19 守护线程
  • 相关阅读:
    明确架构目标
    是什么浪费了我的时间
    精益求精,抑或得过且过[转]
    web界面应用的十种常见技术
    我对软件优化的一些想法
    最新31个非常棒的 Photoshop 网页设计教程
    sql2005提示工具程序
    转载:一篇深入了解.NET中栈和堆较好的文章
    推荐18个非常棒的Web和移动开发框架
    介绍一下这些工具FishAspnetLoader
  • 原文地址:https://www.cnblogs.com/feichangnice/p/10648905.html
Copyright © 2011-2022 走看看