java线程的状态

原创 2016年06月07日 09:48:41

NEW 状态是指线程刚创建, 尚未启动

RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等
BLOCKED 这个状态下, 是在多个线程有同步操作的场景, 比如正在等待另一个线程的synchronized 块的执行释放, 或者可重入的 synchronized块里别人调用wait() 方法, 也就是这里是线程在等待进入临界区

WAITING 这个状态下是指线程拥有了某个锁之后, 调用了他的wait方法, 等待其他线程/锁拥有者调用 notify / notifyAll 一遍该线程可以继续下一步操作, 这里要区分 BLOCKED 和 WATING 的区别, 一个是在临界点外面等待进入, 一个是在理解点里面wait等待别人notify, 线程调用了join方法 join了另外的线程的时候, 也会进入WAITING状态, 等待被他join的线程执行结束

TIMED_WAITING 这个状态就是有限的(时间限制)的WAITING, 一般出现在调用wait(long), join(long)等情况下, 另外一个线程sleep后, 也会进入TIMED_WAITING状态

TERMINATED 这个状态下表示 该线程的run方法已经执行完毕了, 基本上就等于死亡了(当时如果线程被持久持有, 可能不会被回收)

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JAVA线程状态

  • 2013年05月19日 12:05
  • 128KB
  • 下载

Java线程的5种状态及切换(透彻讲解)

Java中的线程的生命周期大体可分为5种状态。 ①NEW:这种情况指的是,通过New关键字创建了Thread类(或其子类)的对象 ②RUNNABLE:这种情况指的是Thread类的对象调用...

java线程状态转换图

  • 2011年07月04日 11:27
  • 69KB
  • 下载

java线程状态——jstack的应用

jstack是java提供的查询jvm栈信息的小工具。 在之前的文章中已经广泛的使用它,文章参考如下: java 线程状态 java 线程状态——情况续说 java线程状态——java线程状态图 ...

java线程停止、暂停和恢复等状态的控制

JDK1.0定义了stop和suspend方法,stop用来直接终止线程,suspend会阻塞线程直到另一个线程调用resume. stop和suspend都有一些共同的点:都试图专横的控制一个给定...

黑马程序员 Java基础线程状态

新建:start() 运行:具备执行资格,同时具备执行权; 冻结:sleep(time),wait()—notify()唤醒;线程释放了执行权,同时释放执行资格; 临时阻塞状态:线程具备cpu的执...

java 线程运行状态

ava线程:线程状态的转换   SCJP5学习笔记   一、线程状态   线程的状态转换是线程控制的基础。线程状态总的可分为五大状态:分别是生、死、可运行、运行、等待/阻塞。用一个...

Java线程状态中BLOCKED和WAITING的区别

Java线程状态中BLOCKED和WAITING的区别>java -version java version "1.6.0_43" Java(TM) SE Runtime Environment (b...
  • wxlnn
  • wxlnn
  • 2017年03月11日 10:57
  • 293

Java 线程状态

一个线程总共有以下四个状态: 1、新建(New) :        当线程被创建的时候,它会短暂的处于这个状态。此时它已经分配了必需的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间了,...
  • zartzwj
  • zartzwj
  • 2014年12月16日 23:34
  • 321
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java线程的状态
举报原因:
原因补充:

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