java.lang.Thread.State类详解

转载 2015年11月20日 17:04:42
public static enum Thread.Stateextends 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 
已终止线程的线程状态。线程已经结束执行。 

注意:在给定时间点上,一个线程只能处于一种状态。这些状态是虚拟机状态,它们并没有反映所有操作系统线程状态。 

为了展现线程在运行时的状态及其转换,我画了下面这个图: 

java.lang.Thread.State类详解

http://shihaiyang.iteye.com/blog/437902 public static enum Thread.Stateextends Enum
  • jajavaja
  • jajavaja
  • 2015年08月18日 09:10
  • 2616

各种 Java Thread State 第一分析法则

使用 TDA 工具,看到大量 Java Thread State 的第一反应是: 1,线程状态为“waiting for monitor entry”: 意味着它 在等待进入一个临界区 ,所以它...
  • wgw335363240
  • wgw335363240
  • 2014年03月17日 10:13
  • 11524

Java Thread State 分析

1,线程状态为“waiting for monitor entry”: 意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。 此时线程状态一般都是 Blocked: j...
  • chen978616649
  • chen978616649
  • 2015年05月31日 10:51
  • 2280

一次服务大量超时的java排查过程经验

一次应用提供的服务化接口收到报警大量超时,报404.赶忙着手处理: 1)查看监控报表的cpu  load ,jvm gc情况,jvm内存,io都正常,如果没有做监控可以手工到服务器上命令查看 2)检...
  • yaowj2
  • yaowj2
  • 2013年10月09日 00:08
  • 13722

学习java线程状态和看懂thread dump文件中的线程信息

t1 : 这个是线程名称,可以在new Thread()对象的时候指定,或者调用Thread.setName。有了这个名称,搜索thread dump的时候更加方便。这也就是为什么,一般创建线程的时候...
  • aitangyong
  • aitangyong
  • 2014年09月23日 20:18
  • 6715

又一次Java线程卡死的调试经历

我的java代码,每天凌晨1点都会执行一个定时任务,定时任务中有循环执行的任务,每次循环都有开始和结束日志,某一天,我忽然发现,日志中前一天的循环只执行了几次就停止了,根据日志来看,执行到第4次循环的...
  • u011734144
  • u011734144
  • 2017年03月15日 10:26
  • 4720

Java线程状态中BLOCKED和WAITING有什么区别?

刚才在看CSDN的问答时,发现这个问题。原问题的作者是在观察jstack的输出时提出的疑问,那么BLOCKED和WAITING有什么区别呢? 答复在JDK源码中可以找到,如下是java.lang.T...
  • babyblue_963
  • babyblue_963
  • 2015年08月23日 17:48
  • 8591

C++ 类详解

面对对象:面对将系统看成通过交互作用来完成特定功能的对象的集合。每个对象用自己的方法来管理数据。也就是说对象内部的代码能够操作对象内部的数据。   特点:(抽象)——灵活性       继承——...
  • ky_heart
  • ky_heart
  • 2017年02月09日 09:13
  • 3043

Thread类的解析和常识

Thread的构造方法 public Thread(Runnable runnable); public Thread(ThreadGroup group ,Runnable runnale...
  • doctorzhong
  • doctorzhong
  • 2016年11月07日 17:03
  • 1232

kafka的线程模型之一

这篇文章我想从线程的角度,来阐述kafka的结构. 网上有不少关于kafka架构的博客,但浏览下来大多属于层次比较高,细节比较少的介绍.因此我想要另辟蹊径,讲一讲一台向外提供服务的broker,有哪写...
  • qq_21519863
  • qq_21519863
  • 2017年11月27日 12:16
  • 138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java.lang.Thread.State类详解
举报原因:
原因补充:

(最多只允许输入30个字)