`
baobeituping
  • 浏览: 1068808 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

线程的生命周期

阅读更多

线程的生命周期分为:新建、就绪、运行、阻塞、死亡。

 

新建:当线程对象调用了start方法以后,线程就处于就绪状态,JAVA虚拟机会为其创建方法调用栈和程序计数器,处于这个状态的线程并没有运行,他只是表示他可以运行而已。启动线程试用Start方法,而不是RUN方法,调用start方法来启动线程,系统会吧该RUN方法当成线程执行体来处理,但如果直接调用线程对象的RUN方法,则RUN方法会被立即执行,而且在RUN方法之前的其他线程无法并行执行。

 

运行状态:当线程处于就绪状态获得CPU,就开始执行RUN方法,程序进入运行状态。一条线程开始运行以后,不可能一只处于运行状态,线程运行状态过程中也会被中断,目的是给其他线程获得执行的机会。系统会给每个可执行的线程一小段时间来处理任务。

 

阻塞状态:当发生如下情况,线程会进入阻塞状态:

1。线程调用SLEEP方法主动放弃所占用的资源。

2。线程调用了一个阻塞式IO方法,在改方法返回以前,该线程阻塞。

3。线程试图获得一个同步监视器,但该同步监视器正被别的线程所持有。

3。线程在等待某个通知。

4。线程调用了SUSPEND方法将该线程挂起。

 

死亡:

1。线程的RUN方法执行完成,线程正常结束。

2。线程抛出一个未捕获的EXCEPTION或ERROR。

3。直接调用线程的STOP方法来结束该线程。

为了测试某线程是否已经死亡,可以调用线程的isAlive()方法,当线程处于就绪,运行,阻塞的时候返回TRUE,当线程处于新建和死亡状态,该方法返回FALSE。

当对已经死亡的线程调用START方法,会抛出illegalThreadStateException异常。

 

 

分享到:
评论

相关推荐

    java线程生命周期详细讲解

    Java多线程生命周期的讲解,很详细,希望能帮到大家

    线程生命周期.png

    多线程生命周期图解,一分钟了解线程从生到死全过程,图文并茂,通俗易懂,容易记忆。独家原创。欢迎下载。

    线程生命周期流程图

    我根据自己的理解画的这个线程生命流程图,希望对你们有点点的帮助吧!!!

    线程生命周期.pdf

    以图表形式详细列出java线程生命周期,创建线程,线程就绪,线程阻塞,线程中断,线程唤醒,线程运行之间的关系

    Java线程生命周期.zip

    Java线程生命周期是Java编程中的核心概念,它关乎程序的并发执行和性能优化。线程在Java中扮演着至关重要的角色,特别是在多任务处理和实时系统中。理解线程的生命周期有助于开发者更有效地管理和控制程序运行流程。...

    线程生命周期.uml

    线程生命周期.uml

    ruby-线程生命周期及其状态

    ruby|线程生命周期及其状态

    Java多线程(二)、线程的生命周期和状态控制

    ### Java多线程之线程的生命周期和状态控制 #### 一、线程的生命周期 在Java中,线程的生命周期是指线程从创建到结束的整个过程。根据线程的状态变化,我们可以将线程的生命周期划分为以下几个阶段: 1. **新建...

    线程管理和线程的生命周期

    主要是线程基本概念,线程同步。线程的生命周期。做了一个demo。

    Java多线程-线程的生命周期

    线程生命周期的终点是死亡状态。线程在以下三种情况下结束:`run()`方法执行完毕、执行过程中抛出未捕获异常或错误,或者调用已过时的`stop()`方法。 6. 等待(Waiting): 从JDK1.5开始,线程可以进入等待状态,这...

    4初学Java多线程:线程的生命周期.pdf

    在探讨Java多线程和线程生命周期时,我们首先应该明确,Java多线程是Java语言支持并发编程的一个重要特性,其允许同时执行多个任务,以提高程序的执行效率和改善用户体验。Java中的每个线程都有自己的生命周期,由一...

    图解Java线程的生命周期

    正确管理线程生命周期是防止死锁、资源浪费和提高程序效率的关键。合理设计线程间的协作,使用线程池来控制线程数量,以及正确处理异常,都是编写多线程程序时应考虑的重要因素。理解并掌握Java线程的生命周期转换有...

    Java多线程初学者指南:线程的生命周期.pdf

    本文将深入探讨Java多线程中的线程生命周期,以及如何控制线程的状态转换。 线程的生命周期通常包括五个基本状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和终止(Terminated)。下面...

    GaiaThreadNest:用于线程生命周期控制的多线程应用程序框架

    线程生命周期管理 `GaiaThreadNest`的核心功能是线程的生命周期控制。传统的C++线程操作需要直接调用`std::thread`的构造函数创建线程,然后手动管理线程的运行与结束。而`GaiaThreadNest`通过封装这些过程,允许...

    线程生命周期

    NULL 博文链接:https://chaoyi.iteye.com/blog/2080734

    Java软件开发实战 Java基础与案例开发详解 12-2 线程的生命周期 共10页.pdf

    #### 线程生命周期的概念 在Java软件开发过程中,线程是实现并发的重要手段之一。了解线程的生命周期对于有效地管理和控制线程至关重要。线程从创建到销毁的过程可以分为多个状态,每个状态都有其特定的意义。 ###...

    (完整版)Java程序设计任务驱动式教程-任务二十八-线程的生命周期与优先级(线程的状态与调度).ppt

    【Java线程生命周期与优先级】 在Java程序设计中,线程是程序执行的独立路径,它使得程序可以并发地执行多个任务。线程的生命周期包括五个基本状态:新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked...

    Java 线程的生命周期完整实例分析

    Java 中的线程生命周期主要包括以下几个阶段:新建(New)、可运行(Runnable)、运行(Running)、等待(Waiting)、阻塞(Blocked)、死亡(Dead)。在 Java 中,我们可以通过使用 Thread 的生命周期来实现多线程...

    线程状态图

    此图展示了线程状态变化,可以说是线程的生命周期,有助于对多线程理解

    Java 线程的生命周期详细介绍及实例代码

    Java线程的生命周期是每个Java多线程开发者必须了解的重要概念。线程在它的整个生命周期中会经历五个基本状态:新建(New)、就绪(Runnable)、...理解和掌握线程生命周期对于编写高效、稳定的多线程程序至关重要。

Global site tag (gtag.js) - Google Analytics