码迷,mamicode.com
首页 > 编程语言 > 详细

002 线程的状态

时间:2018-05-05 18:38:38      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:创建   线程状态   [1]   过程   tin   阻塞队列   内部类   pre   public   

一.概述

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


 

二 .线程状态

在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: 休眠状态,一般是线程自己主动休眠进入的状态,当时间过去之后,线程自动进入可运行状态.

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

002 线程的状态

标签:创建   线程状态   [1]   过程   tin   阻塞队列   内部类   pre   public   

原文地址:https://www.cnblogs.com/trekxu/p/8995482.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!