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代码两个层面来划分的。线程整体的流程是:新建--->可运行(就绪+运行)--->终结。

java线程状态(六种五种)相关推荐

  1. 理解Java线程状态(6种,6种,6种)

    什么是线程 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light-Weight Process)或进程元:而把传统的进程称为重型进程(Heavy-Weight Process),它相当于只有 ...

  2. JAVA线程状态的10种转换

    JAVA线程状态转换 参考视频:https://www.bilibili.com/video/BV16J411h7Rd 后续将继续补充,同时完善. 情况1NEW–>RUNNABLE ​ 当调用t ...

  3. 线程状态是五种对?还是六种对?

    五种: 线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start( ...

  4. 实现Java线程同步的五种方法

    线程同步概念 Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),将会导致数据不明确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的 ...

  5. java线程同步的五种方法

    2019独角兽企业重金招聘Python工程师标准>>> 1.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, ...

  6. 【Java多线程】Java线程状态及转换方法详解

    文章目录 1. 现代操作系统中的线程状态及转换(5种) 2. Java 线程状态(6种) 2.1 NEW 创建 2.2 RUNNABLE 运行 2.3 BLOCKED 阻塞 2.4 WAITING 等 ...

  7. Java并发编程一线程池的五种状态

    推荐:Java并发编程汇总 Java并发编程一线程池的五种状态 原文地址 Java多线程线程池(4)–线程池的五种状态 正文 线程池的5种状态:Running.ShutDown.Stop.Tidyin ...

  8. Java线程到底有几种状态

    前言 很多文章说Java线程有五种状态:NEW(新建).RUNNABLE(就绪).RUNNING(运行).BLOCKED(阻塞).DEAD(死亡),而阻塞又分为等待阻塞.同步阻塞.其它阻塞. 很遗憾这 ...

  9. 线程及线程池的五种状态

    线程的5种状态 线程可以有如下5种状态:New .Runnable .Running .Blocked .Dead 状态之间的转换如图: 1.New (新创建) 当用new操作符创建一个线程时,如ne ...

  10. 线程池的五种状态及创建线程池的几种方式

    上篇<Java线程的6种状态详解及创建线程的4种方式> 前言:我们都知道,线程是稀有资源,系统频繁创建会很大程度上影响服务器的使用效率,如果不加以限制,很容易就会把服务器资源耗尽.所以,我 ...

最新文章

  1. 服务器温度3d显示,智能问答助手、3D可视化展示,腾讯医典“黑科技”助力科普更有温度...
  2. linux的dns查询工具,一款超强的统计DNS查询的工具--DNSTOP
  3. Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
  4. hdu2155 小黑的镇魂曲(dp)
  5. 【错误记录】编译 Linux 内核报错 ( fatal error: openssl/opensslv.h: No such file or directory )
  6. 区块链演进及跨域安全解决方案
  7. Scala中映射的语法(对应Java中的Map集合的定义)
  8. 如何用python开发游戏_手把手教你用Python完成一个控制台小游戏-阿里云开发者社区...
  9. 图灵机器人调用数据恢复_机器人也能撩妹?python程序员自制微信机器人,替他俘获女神芳心...
  10. ps抠头发插件_彻底告别抠图的烦恼!PS自动抠图超级插件Topaz ReMask大放送
  11. nodejs下载安装
  12. python批量爬取京东手机评论信息及星级
  13. centOS 7无法连接网络详细解决办法
  14. RocketMQ基础提高进阶demo实例应用
  15. bootstrap-datetimepicker时间控件
  16. Python实现数字图像处理之5种彩色空间转换(单图+多图+视频)
  17. 震坤行旗下坤同智能仓储助力「数字龙华」闯关破题
  18. 百度网盘导致SqlServer占用CPU过高
  19. 使用 Kali Linux 跟踪任何设备位置
  20. 智能运维监控系统怎么选

热门文章

  1. 数据库建模工具Pdman
  2. vueminder ultimate 2020中文版(电脑桌面日历工具) v2020.07
  3. 敏捷开发模式下测试策略
  4. BearPi-IoT串口收发1-普通模式
  5. 秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!
  6. chrome插件开发引入图片静态资源
  7. 【转载】你必须知道的10种国产编程语言
  8. 天然气流量计选型指南
  9. 解决 EndNote X9 安装报错 lnstallation ended prematurely because of an error.
  10. 施密特触发器HSPICE仿真【内附代码】