zoukankan      html  css  js  c++  java
  • 004 后台线程

    一 . 后台线程

    一个线程是在线程创建的时候被指定为在后台执行的一种特殊线程.

    注意 : 

      [1] 后台线程需要在启动之前进行指定.

      [2]daemnon的优先级别很低,也就是说它运行的机会比较少.

      [3]后台线程的生命周期依赖于其父线程的生命周期,也就是说,如果没有非后台线程,

        那么后台线程自动结束.

    下面看一个例子:

      

    public class DaemonThread {
    
        public static void main(String[] args) {
            //创建一个线程,这个线程会不断的打印自己的名字
            Thread thread = new Thread() {
                @Override
                public void run() {
                    while (true) {
                        System.out.println(Thread.currentThread().getName());
                        try {
                            TimeUnit.SECONDS.sleep(1);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }
            };
            //thread.setDaemon(true);
            thread.start();
        }
    }

    在上面我们创建了一个线程,这个线程是一个非后台线程,因此它的生命周期与其它线程无关.

    因此,现在我们运行的时候就会不断的打印该线程的名字.

    当我们打开注释:

      我们发现现在线程不会不断打印自己的名字了,而是在主线程终结的时候主动结束自己的生命周期了.

    总结 : 

      后台线程我们可以认为是一个附属线程,它的生命周期依赖于其父线程的生命周期.

      比如现在有一个应用,需要一个子线程不断发送消息到对方服务器确认对方是否下线.

      那么我们就能使用一个后台线程完成这个任务.

      我们使用一个后台线程完成这个任务,如果主线程终结,那么我们就不需要再发心跳包了 .

      

  • 相关阅读:
    将图片部署在tomcat/iportWork/uploadFiles中
    idea中的svn配置
    mavan和idea的搭建,很好的一篇文章
    C#如何遍历数组?
    java 泛型小小的测试题
    js关于变量作为if条件的真假问题
    HTML5实现两个视频循环播放!
    JQuery利用选择器定位动态id?
    hibernate QBC查询
    mybatis前台传来一个String,后后台执行sql变成了true
  • 原文地址:https://www.cnblogs.com/trekxu/p/8969578.html
Copyright © 2011-2022 走看看