`
lippeng
  • 浏览: 455057 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java线程状态

 
阅读更多

从JDK1.5开始,Thread类里加了线程状态的枚举:State。

 

其共有6项:NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED。

 

NEW:线程创建到start方法被调用前,状态为NEW;

 

RUNNABLE:对JVM而言是正在执行,但可能正在等待操作系统的CPU时间片;

 

BLOCKED:等待monitor lock,即等待进入synchronized同步块或方法;

 

WAITING:当调用了Object.wait(),Thread.join(),LockSupport.park()后,进入等待状态;wait要等其他线程调用Object.notify或notifyAll,join要等指定的线程状态为TERMINATED;

 

TIMED_WAITING:类似WAITING,只是加了超时时间;Thread.sleep时,也是进入该状态;

 

TERMINATED:线程完成了所有的事情,最终的状态;

 

一个线程,都会经历 NEW,RUNNABLE,TERMINATED这3个状态。

 

当代码中有 synchronized时,有可能会出现BLOCKED状态。

 

有调用wait,join,park等方法时,会出现WAITING状态或TEMED_WAITING状态。

 

分享到:
评论

相关推荐

    Java线程状态流转图

    Java线程状态流转图知识点总结 Java线程状态流转图是一种用于描述Java线程生命周期中不同的状态和状态转换的图形表示方式。该图形展示了Java线程从创建到终止的整个生命周期,并详细介绍了每种状态的特点和转换...

    java线程状态转换图

    Java 线程状态转换图 Java 线程状态转换图是 Java 编程中非常重要的一个概念,它描述了线程在不同的状态之间的转换关系。了解线程状态转换图对 Java 编程的理解和应用非常重要。本文将详细介绍 Java 线程状态转换图...

    Java线程状态转换.pdf

    Java线程状态转换是Java多线程编程中的关键概念,对于理解和优化并发程序至关重要。Java线程在其生命周期中经历多种状态,这些状态之间的转换是由线程调度器根据特定的策略来决定的。以下是对Java线程状态转换的详细...

    Java学习教程-探究JAVA线程状态及转化视频

    Java线程是并发编程的核心部分,...总的来说,Java线程状态和转换是Java并发编程的基础,对于提升软件的并发性和响应性具有重要意义。通过本教程的视频学习,你将能更深入地理解这些概念,并能够在实际开发中灵活运用。

    JAVA线程状态

    了解和理解JAVA线程状态:对于JAVA初学者来说,有作用。

    Java线程状态转换关系实例解析

    Java线程状态转换关系实例解析 Java线程状态转换关系实例解析是Java多线程编程中的一种重要概念,它指的是Java线程在不同的状态之间的转换关系。了解这些状态转换关系可以帮助开发者更好地编写多线程程序,避免线程...

    java线程状态图

    java线程从新建到死亡所能经历的各种状态之间的流转。包括运行到阻塞、进入锁池、等待队列,全面而清晰的一张图

    Java线程:线程状态的转换

    ### Java线程:线程状态的转换 #### 一、线程状态及其转换 ...通过以上分析,我们可以看到Java线程状态转换的基本原理以及如何利用线程状态来控制线程的行为,这对于开发高性能、高可靠性的并发程序至关重要。

    java线程的状态2---马克-to-win java视频

    java线程的状态3---马克-to-win java视频的详细描述与介绍

    Java 线程状态、线程池

    java 线程状态、线程池 1. java 的线程状态 状态 发生条件 NEW 线程刚刚被创建,没有启动,没有调用start方法 RUNNABLE(可运行) 线程已经在JVM中运行,但是是否运行不确定,看当前线程是否由CPU执行权 ...

    Java线程状态及切换、关闭线程的正确姿势分享

    "Java线程状态及切换、关闭线程的正确姿势分享" 本文将详细介绍Java线程状态及切换、关闭线程的相关内容。线程状态及切换是Java多线程编程中一个非常重要的概念,掌握线程状态及切换是编写高效、稳定、可靠的多线程...

    Java源码查看线程的运行状态.rar

    在Java编程中,线程是程序执行的基本单元,它允许应用程序同时执行多个任务。了解如何查看线程的运行状态对于调试和性能优化...通过阅读和分析源码,我们可以更深入地了解Java线程的工作原理,从而提升我们的编程技能。

    Java线程:线程状态的转换.pdf

    在Java编程中,线程是并发执行任务的...总之,理解和掌握Java线程状态的转换以及如何控制线程执行是编写高效并发程序的关键。通过适当的方法,我们可以控制线程的执行顺序,实现线程间的同步和协作,从而优化程序性能。

    Java线程状态运行原理解析

    Java线程状态运行原理解析 Java线程状态运行原理解析是Java编程语言中一个非常重要的概念,涉及到线程的生命周期、状态转换、线程间通信等方面。下面我们将对Java线程状态运行原理进行详细的分析和解释。 线程状态...

    Java 线程状态和等待唤醒机制和线程池的实现

    Java 线程状态和等待唤醒机制和线程池的实现 Java 中线程状态可以分为六种:新建状态(New)、就绪状态(Runnable)、运行状态(Running)、休眠状态(Sleeping)、等待状态(Waiting)和死亡状态(Dead)。在 Java...

    JVM线程状态和Thread.sleep的实现原理探究.pdf

    值得注意的是,Java线程状态SLEEPING还包含了等待(WAITING)和带超时的等待(WAITING_WITH_TIMEOUT)状态,这是因为Java提供了更加丰富的线程状态抽象,从而帮助开发者更好地理解和控制线程行为。 此外,Java中的...

    Java线程状态变换过程代码解析

    理解Java线程状态的变化对于编写并发程序至关重要,它帮助开发者预测和控制线程的行为,避免死锁、饥饿等问题。正确使用线程状态转换方法如`yield()`和`join()`,可以提高程序的并发性能和可维护性。

    Java多线程运算集合

    #### 四、Java线程状态的转换 - **线程状态**: - Java线程有多种状态:新建 (`NEW`)、就绪 (`RUNNABLE`)、阻塞 (`BLOCKED`)、等待 (`WAITING`)、超时等待 (`TIMED_WAITING`) 和终止 (`TERMINATED`)。 - **状态...

    java线程分析工具TDA

    TDA(Thread Dump Analyzer)是一款强大的Java线程分析工具,它能够帮助开发者深入理解应用在运行时的线程状态,包括线程的阻塞情况、等待资源、死锁等问题。下面将详细介绍TDA的使用方法、功能以及它如何帮助我们...

    java线程.pdf

    Java线程有五种基本状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Terminated)。线程的状态会随着程序的运行而变化: 1. **新建**:当创建了一个新的线程对象后,该线程处于新建...

Global site tag (gtag.js) - Google Analytics