|
|
51CTO旗下网站
|
|
移动端

1.1.3 线程状态

《Java多线程与Socket:实战微服务框架》第1章多线程基础,本书尽量采用简要和通俗易懂的方式来介绍多线程知识。本节为大家介绍线程状态。

作者:庞永华来源:电子工业出版社|2019-03-26 15:42

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

1.1.3 线程状态

线程和进程一样拥有7种状态:新建(NEW)、就绪(RUNNABLE或READY)、运行(RUNNING)、阻塞(BLOCKED)、等待(WAITING)、计时等待(TIME_WAITING)、终止(TERMINATED或DEAD)。线程在存续过程中,其状态会在这7种状态之间转换。

注:在Java 5以前,等待(WAITING)和计时等待(TIME_WATING)也被归于阻塞(BLOCKED)状态,所以也有5种状态的说法。

新建(NEW):线程被新创建时的状态。

就绪(RUNNABLE或READY):线程正在参与竞争CPU的使用权。

运行(RUNNING):线程获取到了CPU的使用权,正在执行。

阻塞(BLOCKED):阻塞状态指的是线程为了等待某个对象的“锁”,而暂时放弃CPU的使用权,且不再参与CPU使用权的竞争。直到条件满足(超时退出、被中断或唤醒)

时,该线程才重新回到就绪(RUNNABLE)状态,重新参与竞争CPU。

等待(WAITING):线程***等待(wait)某个对象的“锁”,或等待另一个线程结束(TERMINATED)的状态。

计时等待(TIME_WAITING):线程在一段时间内等待某个对象的“锁”(wait),或者主动休眠(sleep),抑或等待另外一个线程结束(join)。除非被中断(interrupt),否则时间一到,(超时)线程将自动回到RUNNABLE状态,被中断的方法通常会抛出中断异常(InterruptedException)。超时的方法会抛出超时异常(TimeoutException)。

终止(TERMINATED或DEAD):遇到以下3种情况,线程将终止:线程所运行的代码段被执行完毕,或执行过程中出现异常,抑或受到外界干预而中断执行。

图1-1大致表述了线程在这7种状态之间的转换关系。其中的一些状态转换关系,需要我们先深入学习相应的知识点才能理解。请继续阅读本书的后续内容,并适时回顾本章节的知识点。


喜欢的朋友可以加入官方的读书群

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

16招轻松掌握PPT技巧

16招轻松掌握PPT技巧

GET职场加薪技能
共16章 | 晒书包

289人订阅学习

20个局域网建设改造案例

20个局域网建设改造案例

网络搭建技巧
共20章 | 捷哥CCIE

645人订阅学习

WOT2019全球人工智能技术峰会

WOT2019全球人工智能技术峰会

通用技术、应用领域、企业赋能三大章节,13大技术专场,60+国内外一线人工智能精英大咖站台,分享人工智能的平台工具、算法模型、语音视觉等技术主题,助力人工智能落地。
共50章 | WOT峰会

0人订阅学习

读 书 +更多

计算机网络安全

本书从计算机网络安全的概念入手,分析了单机节点、单一网络、互联网络和开放互联网络的基本安全问题,并对计算机网络安全体系架构和安全机...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客