栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java线程状态(六种&五种)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java线程状态(六种&五种)

java线程的状态常见的有两种说法,一种是将其分为6种一种是分为5种

1. 六种:

划分依据:主要是从java代码的角度来进行划分。

1. 新建状态 :

        使用new关键字创建一个thread对象,刚刚创建出的这个线程就处于新建状态。在这个状态的线程没有与操作系真正的线程产生关联,仅仅是一个java对象。

2. 可运行:

        正在进行运行的线程,只有处于可运行状态的线程才会得到cpu资源。

3. 阻塞 :

        在可运行阶段争抢锁失败的线程就会从可运行--->阻塞

4. 等待 :

        可运行状态争抢锁成功,但是资源不满足,主动放弃锁(调用wait()方法)。条件满足后再恢复可运行状态(调用notiy()方法)。

5. 有时限等待:

        类似于等待,不过区别在于有一个等待的时间,到达等待时间后或者调用notiy(),都能恢复为可运行状态。

        有两种方式可以进入有时限等待:wait(Long)和sleep(Long)

6. 终结 :代码全部执行完毕后,会进入到终结状态,释放所有的资源。
 

2. 五种:

划分依据:从操作系统层面划分

1. 新建 

        类似于六种,刚刚创建出的这个线程就处于新建状态。

2. 就绪

        线程分到CPU时间运行代码,但是还没有运行。 

3. 运行

        线程分到CPU时间运行代码,并且正在运行。

4. 阻塞

        线程暂时没有分到时间运行代码,就会进入阻塞状态,包括以下四种情况:

        a. IO阻塞:不需要cpu资源(磁盘读写,网络读写)

        b. BLOCKED

        c. WAITING

        d. TIMED_WAITING

5. 终结

        类似于六种,代码全部执行完毕后,会进入到终结状态,释放所有的资源。

总结

        简单总结一下,无论是五种还是六种内容大同小异,划分的依据是从操作系统和java代码两个层面来划分的。线程整体的流程是:新建--->可运行(就绪+运行)--->终结。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号