zoukankan      html  css  js  c++  java
  • 002 线程的状态

    一.概述

      线程的生命周期之中,会由不同的状态进行转换,理解这些状态的概念可以帮助理解线程的运行过程.


     二 .线程状态

    在Thread类之中,存在一个内部类Status(实际是一个枚举类),这个类描述了线程的状态.

    public enum State {      
            NEW,
            RUNNABLE,
     
            BLOCKED,
          
            WAITING,
           
            TIMED_WAITING,
    
            TERMINATED;
        }

    在这个类之中定义线程的六个状态.其中,runnable状态包括我们的说的运行状态和就绪状态,因为这两个状态的切换是由JVM决定的,我们可以理解为一个状态.

    [1]NEW: 线程对象创建之后的状态,此时线程没有调用start()方法.

    [2]Runnable:线程对象处于可运行状态,是否正在运行取决于时间片是否已经分配.

    [3]Block:阻塞状态.一般情况下是由于线程抢夺锁资源不成功,进入了阻塞队列之中.

    [4]wating : 等待状态,一般是线程自己放弃时间片进入等待状态,在没有其他线程的唤醒时,此线程一直处于等待队列之中.

    [5]time-wait: 休眠状态,一般是线程自己主动休眠进入的状态,当时间过去之后,线程自动进入可运行状态.诸如sleep,wait这样的方法都可能进入到该状态之中.

    [6]terminated: 终结状态,一般是由线程出现异常或者完全运行完成进入到的状态之中.

  • 相关阅读:
    centos7修改时区EDT------CST
    七种可能 | Linux丢包故障的定位与解决
    TCP超时、ping不丢包排查
    JavaScript 判断变量是否为空---三元运算,元组获取值-重组.map()。
    SSH 正、反向代理实现稳定的内网穿透实验_
    V3
    V3
    I4-6 At the hotel Teacher: Maggie
    English Voice of <<Everything I Need >>
    V3
  • 原文地址:https://www.cnblogs.com/trekxu/p/8995482.html
Copyright © 2011-2022 走看看