Java Thread Status(转)

public static enum Thread.State  extends Enum<Thread.State>线程状态。
线程可以处于下列状态之一:
1.NEW 至今尚未启动的线程的状态。
2.RUNNABLE 可运行线程的线程状态。
        处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器。
3.BLOCKED 受阻塞并且正在等待监视器锁的某一线程的线程状态。
        处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Object.wait 之后再次进入同步的块/方法。
4.WAITING 某一等待线程的线程状态。某一线程因为调用下列方法之一而处于等待状态:

  • 不带超时值的 Object.wait
  • 不带超时值的 Thread.join


LockSupport.park
处于等待状态的线程正等待另一个线程,以执行特定操作。
例如,已经在某一对象上调用了 Object.wait() 的线程正等待另一个线程,以便在该对象上调用 Object.notify() 或 Object.notifyAll()。
    已经调用了 Thread.join() 的线程正在等待指定线程终止。
5.TIMED_WAITING具有指定等待时间的某一等待线程的线程状态。某一线程因为调用以下带有指定正等待时间的方法之一而处于定时等待状态:

  • Thread.sleep
  • 带有超时值的 Object.wait
  • 带有超时值的 Thread.join
  • LockSupport.parkNanos
  • LockSupport.parkUntil


6.TERMINATED
已终止线程的线程状态。线程已经结束执行。
注意:在给定时间点上,一个线程只能处于一种状态。这些状态是虚拟机状态,它们并没有反映所有操作系统线程状态。
为了展现线程在运行时的状态及其转换,我画了下面这个图

 

    /*** A thread state.  A thread can be in one of the following states:* <ul>* <li>{@link #NEW}<br>*     A thread that has not yet started is in this state.*     </li>* <li>{@link #RUNNABLE}<br>*     A thread executing in the Java virtual machine is in this state.*     </li>* <li>{@link #BLOCKED}<br>*     A thread that is blocked waiting for a monitor lock*     is in this state.*     </li>* <li>{@link #WAITING}<br>*     A thread that is waiting indefinitely for another thread to*     perform a particular action is in this state.*     </li>* <li>{@link #TIMED_WAITING}<br>*     A thread that is waiting for another thread to perform an action*     for up to a specified waiting time is in this state.*     </li>* <li>{@link #TERMINATED}<br>*     A thread that has exited is in this state.*     </li>* </ul>** <p>* A thread can be in only one state at a given point in time.* These states are virtual machine states which do not reflect* any operating system thread states.** @since   1.5* @see #getState*/public enum State {/*** Thread state for a thread which has not yet started.*/NEW,/*** Thread state for a runnable thread.  A thread in the runnable* state is executing in the Java virtual machine but it may* be waiting for other resources from the operating system* such as processor.*/RUNNABLE,/*** Thread state for a thread blocked waiting for a monitor lock.* A thread in the blocked state is waiting for a monitor lock* to enter a synchronized block/method or* reenter a synchronized block/method after calling* {@link Object#wait() Object.wait}.*/BLOCKED,/*** Thread state for a waiting thread.* A thread is in the waiting state due to calling one of the* following methods:* <ul>*   <li>{@link Object#wait() Object.wait} with no timeout</li>*   <li>{@link #join() Thread.join} with no timeout</li>*   <li>{@link LockSupport#park() LockSupport.park}</li>* </ul>** <p>A thread in the waiting state is waiting for another thread to* perform a particular action.** For example, a thread that has called <tt>Object.wait()</tt>* on an object is waiting for another thread to call* <tt>Object.notify()</tt> or <tt>Object.notifyAll()</tt> on* that object. A thread that has called <tt>Thread.join()</tt>* is waiting for a specified thread to terminate.*/WAITING,/*** Thread state for a waiting thread with a specified waiting time.* A thread is in the timed waiting state due to calling one of* the following methods with a specified positive waiting time:* <ul>*   <li>{@link #sleep Thread.sleep}</li>*   <li>{@link Object#wait(long) Object.wait} with timeout</li>*   <li>{@link #join(long) Thread.join} with timeout</li>*   <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li>*   <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li>* </ul>*/TIMED_WAITING,/*** Thread state for a terminated thread.* The thread has completed execution.*/TERMINATED;}

java.lang.Thread.State

 

 

http://www.blogjava.net/cpegtop/articles/377980.html

转载于:https://www.cnblogs.com/softidea/p/3984146.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290684.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秀!微软《550页图解.Net+WPF完整版》.pdf 附下载!

赶紧看看微软公司基于最新的.netwpf编写文档。对于零基础可以作为.net的快速入门教材&#xff0c;对于高级程序员而言&#xff0c;这也是你的充电之路&#xff01;NO.1资料介绍该手册,全面的介绍.net的新特性&#xff0c;看完这个资料&#xff0c;你能够对.net/c#WPF的新功能&a…

《移动App测试的22条军规》—第1章1.2节移动App的生命周期

本节书摘来自异步社区《移动App测试的22条军规》一书中的第1章&#xff0c;第1.2节移动App的生命周期&#xff0c;作者黄勇&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.2 移动App的生命周期移动App测试的22条军规&#xff08;1&#xff09;对于还处于…

电子商务应用课程知识整理 第一章-电子商务概述与类型

一、电子商务定义 电子商务&#xff08;Electronic Commerce&#xff0c;简称EC&#xff09;&#xff0c;是指在全球各地广泛的商业贸易活动中&#xff0c;在因特网开放的网络环境下&#xff0c;基于客户端&#xff08;浏览器、移动端&#xff09;/服务器&#xff0c;买卖双方…

电子商务应用课程知识整理 第二章-电子商务相关知识与技术

一、万维网 万维网&#xff08;亦作“网络”、www、Web或World Wide Web&#xff09;&#xff0c;是一个资源空间。在这个空间中包含一些有用的事务&#xff0c;有一个”统一资源标识符“&#xff08;URL&#xff09;表示。这些资源通过超文本传输协议&#xff08;HTTP&#x…

Avalonia跨平台入门第十三篇之Expander控件

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果;今天趁着空闲时间接着去摸索基于Expander控件实现的效果,最终实现的效果如下图:来看看具体的布局:Expander控件样…

《版式设计——日本平面设计师参考手册》—第1章应用对象样式

本节书摘来自异步社区《版式设计——日本平面设计师参考手册》一书中的第1章应用对象样式&#xff0c;作者Designing编辑部,更多章节内容可以访问云栖社区“异步社区”公众号查看。 应用对象样式版式设计——日本平面设计师参考手册对象样式可以帮助我们更有效率地进行工作。 h…

软件概要设计做什么,怎么做

2019独角兽企业重金招聘Python工程师标准>>> 作者&#xff1a;赵磊 博客&#xff1a;http://elf8848.iteye.com 软件概要设计做什么&#xff0c;怎么做 一、软件设计一般流程&#xff1a; 1、先前的软件需求分析阶段&#xff0c;已经搞清楚了 “要解决什么问题”…

开源社区的激励模型

| 作者&#xff1a;庄表伟| 编辑&#xff1a;刘雪洁| 设计&#xff1a;宋传琪| 责编&#xff1a;王玥敏缘起开源社区里的激励模型&#xff0c;其实是一个经久不衰的老话题。4年多以前&#xff0c;我还写过一篇《区块链技术是否会终结开源时代&#xff1f;》&#xff0c;也是在讨…

电子商务应用课程知识整理 第四章-搜索引擎

文章目录一、搜索引擎定义分类1.全文搜索引擎2.目录索引3.元搜索引擎4.垂直搜索引擎工作原理1.抓取网页2.处理网页3.提供检索服务核心算法组成部分发展趋势二、网络蜘蛛三、中文分词基于词典的分词方法基于统计的分词方法基于理解的分词方法分词难点1.歧义识别2.新词识别四、链…

《Network Warrior中文版(第2版)——思科网络工程师必备手册》一3.3 自动协商故障...

本节书摘来自异步社区《Network Warrior中文版&#xff08;第2版&#xff09;——思科网络工程师必备手册》一书中的第3章&#xff0c;第3.3节&#xff0c;作者【美】Gary A. Donahue&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看 3.3 自动协商故障 Network…

Linux 命令(三)--用户管理

2019独角兽企业重金招聘Python工程师标准>>> 查看用户: cat /etc/passwd --------------------- 添加用户: useradd 选项 用户名 -d 目录 指定用户主目录,如果不存在使用-m 创建 -g 指定用户所属的用户组 -G 用户组 ,用户组指定用户所属的附加组 -e <有效期> …

1.单机部署hadoop测试环境

之前看了很多理论上的知识&#xff0c;感觉云里雾里的&#xff0c;所以赶紧着手搭建个单机版的hadoop跑一跑&#xff0c;开启自学大数据技术的第一步~~ 1.在开源的世界里&#xff0c;我就是个土豪&#xff0c;要啥有啥&#xff0c;所以首先你得有个jdk&#xff0c;有钱所以用最…

《互联网+流通——F2R助力传统产业创新与转型》一一第1章 “互联网+”的新时代...

第1章 “互联网&#xff0b;”的新时代 回顾过去20多年&#xff0c;互联网在中国不断发展壮大&#xff0c;从根本上重构了中国人的生活方式。伴随“互联网”在2015年正式被写入国家战略&#xff0c;“互联网”将助推国民经济三驾马车的再造新生&#xff0c;以创新驱动中国经济的…

Oracle数据库体系结构

文章目录Oracle系统体系结构由三个部分组成&#xff1a;**实例、物理结构和逻辑结构**实例和物理结构&#xff08;数据库&#xff09;组成了Oracle服务器。一、实例1.1 内存结构1.1.1 系统全局区&#xff08;SGA&#xff09;1.1.1.1 共享池&#xff08;共享储存区&#xff09;1…

Distributed transactions with multiple databases, Spring Boot, Spring Data JPA and Atomikos

2019独角兽企业重金招聘Python工程师标准>>> A couple of weeks ago I was evaluating the possibility to use Spring Boot, Spring Data JPA and Atomikos for distributed transactions involving multiple databases. After looking at the Spring blog articl…

Avalonia跨平台入门第十四篇之ListBox折叠列表

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件;今天趁着空闲时间接着去摸索基于ListBox的折叠列表的效果,最终实现的效果如下图:先来看看布局吧:…

iptables配置详解

-A参数是将规则写到现有链规则的最后面-I 参数默认是将一条规则添加到现有规则链的最前面&#xff0c;当然也可以指定插入到第几行 行数可以用数字来指定 比如说将一条规则添加到某一条链的第三行 那么原来在第三行的规则就会降到下一行第四行。例如&#xff1a; iptables -I …

C语言之strstr函数类似Java字符串的contain函数

1、strstr函数介绍 找出haystack字符串在needle字符串中第一次出现的位置&#xff08;不包括needle的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c;返回空指针。 2、举例 3、运行结果

软件测试技术——软件测试概述

文章目录一、软件测试的定义标准定义Bug和缺陷二、软件测试与软件质量保证三、软件测试七大基本原则四、软件测试分类按测试手段按测试执行方式按测试阶段或层次按测试对象五、软件测试过程模型V模型W模型H模型X模型一、软件测试的定义 正向观点逆向观点验证软件是否能正常工作…

Linux-No.04 Linux 设置定时任务发送邮件功能

2019独角兽企业重金招聘Python工程师标准>>> 1、定时任务 crontab -l crontab -e /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 /sbin/…