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代码两个层面来划分的。线程整体的流程是:新建--->可运行(就绪+运行)--->终结。
java线程状态(六种五种)相关推荐
- 理解Java线程状态(6种,6种,6种)
什么是线程 线程具有许多传统进程所具有的特征,故又称为轻型进程(Light-Weight Process)或进程元:而把传统的进程称为重型进程(Heavy-Weight Process),它相当于只有 ...
- JAVA线程状态的10种转换
JAVA线程状态转换 参考视频:https://www.bilibili.com/video/BV16J411h7Rd 后续将继续补充,同时完善. 情况1NEW–>RUNNABLE 当调用t ...
- 线程状态是五种对?还是六种对?
五种: 线程在一定条件下,状态会发生变化.线程一共有以下几种状态: 1.新建状态(New):新创建了一个线程对象. 2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start( ...
- 实现Java线程同步的五种方法
线程同步概念 Java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查),将会导致数据不明确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被其他线程的 ...
- java线程同步的五种方法
2019独角兽企业重金招聘Python工程师标准>>> 1.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, ...
- 【Java多线程】Java线程状态及转换方法详解
文章目录 1. 现代操作系统中的线程状态及转换(5种) 2. Java 线程状态(6种) 2.1 NEW 创建 2.2 RUNNABLE 运行 2.3 BLOCKED 阻塞 2.4 WAITING 等 ...
- Java并发编程一线程池的五种状态
推荐:Java并发编程汇总 Java并发编程一线程池的五种状态 原文地址 Java多线程线程池(4)–线程池的五种状态 正文 线程池的5种状态:Running.ShutDown.Stop.Tidyin ...
- Java线程到底有几种状态
前言 很多文章说Java线程有五种状态:NEW(新建).RUNNABLE(就绪).RUNNING(运行).BLOCKED(阻塞).DEAD(死亡),而阻塞又分为等待阻塞.同步阻塞.其它阻塞. 很遗憾这 ...
- 线程及线程池的五种状态
线程的5种状态 线程可以有如下5种状态:New .Runnable .Running .Blocked .Dead 状态之间的转换如图: 1.New (新创建) 当用new操作符创建一个线程时,如ne ...
- 线程池的五种状态及创建线程池的几种方式
上篇<Java线程的6种状态详解及创建线程的4种方式> 前言:我们都知道,线程是稀有资源,系统频繁创建会很大程度上影响服务器的使用效率,如果不加以限制,很容易就会把服务器资源耗尽.所以,我 ...
最新文章
- 服务器温度3d显示,智能问答助手、3D可视化展示,腾讯医典“黑科技”助力科普更有温度...
- linux的dns查询工具,一款超强的统计DNS查询的工具--DNSTOP
- Oracle的登陆问题和初级学习增删改查(省略安装和卸载)
- hdu2155 小黑的镇魂曲(dp)
- 【错误记录】编译 Linux 内核报错 ( fatal error: openssl/opensslv.h: No such file or directory )
- 区块链演进及跨域安全解决方案
- Scala中映射的语法(对应Java中的Map集合的定义)
- 如何用python开发游戏_手把手教你用Python完成一个控制台小游戏-阿里云开发者社区...
- 图灵机器人调用数据恢复_机器人也能撩妹?python程序员自制微信机器人,替他俘获女神芳心...
- ps抠头发插件_彻底告别抠图的烦恼!PS自动抠图超级插件Topaz ReMask大放送
- nodejs下载安装
- python批量爬取京东手机评论信息及星级
- centOS 7无法连接网络详细解决办法
- RocketMQ基础提高进阶demo实例应用
- bootstrap-datetimepicker时间控件
- Python实现数字图像处理之5种彩色空间转换(单图+多图+视频)
- 震坤行旗下坤同智能仓储助力「数字龙华」闯关破题
- 百度网盘导致SqlServer占用CPU过高
- 使用 Kali Linux 跟踪任何设备位置
- 智能运维监控系统怎么选