`
elya_siwei
  • 浏览: 16483 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

线程的六种状态

    博客分类:
  • Java
阅读更多

  NEW

  至今尚未启动的线程处于这种状态。

  RUNNABLE

  正在 Java 虚拟机中执行的线程处于这种状态。处于可运行状态的某一线程正在 Java 虚拟机中运行,但它可能正在等待操作系统中的其他资源,比如处理器。

  BLOCKED

  受阻塞并且正在等待监视器锁的某一线程的线程状态。处于受阻塞状态的某一线程正在等待监视器锁,以便进入一个同步的块/方法,或者在调用 Object.wait 之后再次进入同步的块/方法。

  WAITING

  无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。某一线程因为调用下列方法之一而处于等待状态:

  1、不带超时值的 Object.wait

  2、不带超时值的 Thread.join

  3、LockSupport.park

  处于等待状态的线程正等待另一个线程,以执行特定操作。 例如,已经在某一对象上调用了 Object.wait() 的线程正等待另一个线程,以便在该对象上调用 Object.notify() 或 Object.notifyAll()。已经调用了 Thread.join() 的线程正在等待指定线程终止。

  TIMED_WAITING

  具有指定等待时间的某一等待线程的线程状态。某一线程因为调用以下带有指定正等待时间的方法之一而处于定时等待状态:

  1、Thread.sleep

  2、带有超时值的 Object.wait

  3、带有超时值的 Thread.join

  4、LockSupport.parkNanos

  5、LockSupport.parkUntil

  TERMINATED

  已终止线程的线程状态。线程已经结束执行。

分享到:
评论

相关推荐

    Java线程:线程状态的转换

    ### Java线程:线程状态的转换 #### 一、线程状态及其转换 线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个进程中的多个线程共享同一份内存空间,使得线程间的通信...

    Java线程状态流转图

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

    MFC的状态 模块状态、进程状态、线程状态。

    ### MFC的状态模块状态、进程状态、线程状态详解 #### 9.1 模块状态 MFC中的模块状态是指一个可执行程序或使用MFCDLL的动态链接库(DLL)的状态信息。例如,一个OLE控件可以视为一个模块。每个应用程序的模块都有...

    java线程状态转换图

    本文将详细介绍 Java 线程状态转换图,包括初始状态、可运行状态、运行状态、阻塞状态、锁池状态、等待队列状态和终止状态七种状态的定义、特点和转换关系。 初始状态(Newborn) * 线程的实现有两种方式,一是...

    多线程面试题.docx

    以下是对线程六种状态及其转换、Thread 和 Runnable 的异同、线程控制方法等知识点的详细说明: 1. **线程的六种状态及转换** - **新建(new)**:线程被创建但尚未启动。 - **运行(Runnable)**:包括就绪和...

    delphi判断线程状态

    1. **线程状态** Delphi中的线程状态主要有以下几个: - **创建(Created)**:线程被创建但尚未开始执行。 - **就绪(Ready)**:线程已分配到CPU资源,等待执行。 - **运行(Running)**:线程正在执行。 - *...

    分离状态创建线程

    线程在多线程编程中扮演着至关重要的角色,它们允许程序并发执行多个任务,提高处理器的利用率。在操作系统中,线程分为两...在编写多线程程序时,应根据需求合理选择线程状态,以确保资源的有效利用和程序的正确运行。

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

    #### 二、线程状态的控制 为了更好地管理线程的状态,Java提供了一系列的方法来帮助开发者控制线程的状态,主要包括: 1. **`void destroy()`**: - 已过时。最初用于销毁线程,但不进行任何清理工作。可能导致...

    vc中获取一个线程的状态及返回值

    - 可以使用`GetThreadContext()`,`GetThreadTimes()`,或`QueryThreadCycleTime()`等API查询线程状态。 4. **线程同步**: - 为了确保线程安全,通常需要使用同步机制,如互斥量(`Mutex`)、信号量(`Semaphore...

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

    本文将深入探讨Java源码中查看线程状态的方法,并通过一个经典的实例来阐述这一过程。 线程在Java中由`java.lang.Thread`类表示,其生命周期包括以下几种状态: 1. **新建**(New):当使用`new Thread()`创建了一...

    设计滚动字演示线程状态及改变方法

    - **线程状态**:线程有五种基本状态:新建、就绪、运行、阻塞和死亡。理解这些状态对于正确控制线程至关重要。 2. **滚动文字实现**: - **文本显示**:Java提供了`java.awt`和`javax.swing`包,用于创建图形...

    线程的5种状态详解.doc

    线程状态之间的转换非常灵活,可以从一种状态转换到另一种状态,例如: - 新建 → 可运行 - 可运行 → 运行 - 运行 → 阻塞 - 阻塞 → 可运行 - 可运行 → 死亡 #### 实现 Runnable 接口与继承 Thread 类 Java ...

    NtQuerySystemInformation判断线程是否被挂起/判断线程状态

    对于判断线程状态,我们需要设置为`SystemThreadInformation`,这样返回的数据将包含所有系统线程的信息。 当`SystemInformationClass`设置为`SystemThreadInformation`时,`NtQuerySystemInformation`会返回一个`...

    MFC属于模块-线程状态的部分.DOC

    在MFC中,模块状态、进程状态和线程状态是理解MFC应用程序运行机制的关键概念。 模块状态指的是一个可执行程序或使用MFC的DLL的状态。对于一个应用程序来说,每个模块都有自己的状态,包含了如资源加载的实例句柄、...

    java线程状态图

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

    线程池使用介绍用程序可以有多个线程,这些线程在休眠状态中需要耗费大量时间来等待事件发生。其他线程可能进入睡眠状态,并且仅定期被唤醒以轮循更改或更新状态信息,然后再次进入休眠状态

    在应用程序中,多个线程可能会处于等待状态,等待某个事件的发生或者进行周期性的状态检查,这样的操作会消耗资源,因为线程即使在休眠也需要占用内存。线程池通过集中管理这些线程,减少了创建和销毁线程的开销,...

    多线程实验

    多线程实验的目的是为了让学生深入理解线程状态与生命周期,并了解线程调度机制和线程同步机制。 一、线程状态 在 Java 中,线程可以处于五种状态:新建、Runnable、Running、Waiting 和 Dead。新建状态是指线程...

    线程同步的四种方式

    在多线程编程中,线程同步是一种控制多个线程并发执行时访问共享资源的方式,以避免数据不一致和死锁等问题。以下是对线程同步的四种主要方式的详细解释: 1. **事件(Event)** 事件是Windows API提供的一种线程...

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

    在Java编程中,线程是并发执行任务的基本单位,理解线程状态的转换对于编写高效的多线程程序至关重要。Java线程的状态主要包括以下五种: 1. 新状态(New):当通过`new Thread()`创建了一个线程对象,但还未调用`...

    线程状态图

    标题和描述中提到的知识点是关于线程状态及其在计算机科学中的作用,特别是在Java编程语言中的应用。线程,作为进程中的独立控制流,是现代操作系统(如Mac、Windows NT、Windows 95等)和Java平台的核心概念之一。...

Global site tag (gtag.js) - Google Analytics