zoukankan      html  css  js  c++  java
  • 003 线程属性

    一 . 概述

    一个线程可以具有很多的属性.如,名字,优先级,是否后台线程.


     二 . 线程的名字

      这个十分好理解,就是在创建线程之后给一个线程指定一个名字.

    我们给一个线程分配名字的常用方式有两个:

    [1]在Thread的构造函数之中给出线程的名字

    [2]调用线程实例的setName()方法给线程一个名字.


    三 .线程的优先级

      在创建线程的时候可以给线程指定一个优先级,但是这个优先级不是可靠的一种决定线程运行的参数.

      优先级只能说运行的机会比较多,但是在指定时间未必是它在运行.

      注意: 我们不能指望优先级来控制线程的运行状态.


    四 线程组

      线程在创建的时候会指定一个线程组,如果没有显示指定,那么这个线程所属的线程组就是

        其父线程所在的线程组.

      注意:

        [1]main方法运行时的线程组是main.

        [2]线程组在模型上讲应该是一个树形的结构.

        [3]线程组的作用是控制一组线程的方式,尽管我们并不常用.

    在Bloch的书中,对线程组的一个概念,那就是线程组是一个失败的概念,我们现在对此并没有十分的依赖.


    五 .守护线程

    一个线程在创建的时候,可以指定是否是守护线程.

      守护线程:守护线程的生命周期最长不会多于最后一个非守护线程终结的时刻.

        我们常常使用守护线程做一些维护的工作,辅助的工作.

          当我们的主任务完成,守护线程自动终结.  

    创建一个守护线程的方式就是使用:

     public final void setDaemon(boolean on) {
            checkAccess();
            if (isAlive()) {
                throw new IllegalThreadStateException();
            }
            daemon = on;
        }

    切记: 为线程设置其守护线程的属性需要在线程启动之前,否则就会出现一个异常,这个在源代码之中我们可以看到.[红色的部分表示出现线程状态异常]

      

  • 相关阅读:
    silverlight 网站 iis发布
    使用PerfView诊断.Net GC的问题
    七种方法实现单例模式
    java多线程的学习之路(二)
    java多线程的学习之路(一)
    几种特殊的二叉树
    解析json字符串,把json字符串转换成Java对象
    KMP算法的理解
    常用 Git 命令清单
    Jquery.cookie.js 源码和使用方法
  • 原文地址:https://www.cnblogs.com/trekxu/p/8975080.html
Copyright © 2011-2022 走看看