`
MR_Lonely
  • 浏览: 1791 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

Java线程的几种状态

阅读更多
状态简介:在Java当中,线程通常都有五种状态,创建、就绪、运行、阻塞和死亡。

  第一是创建状态。在生成线程对象,并没有调用该对象的start方法,这是线程处于创建状态;

  第二是就绪状态。当调用了线程对象的start方法之后,该线程就进入了就绪状态,但是此时线程调度程序还没有把该线程设置为当

  前线程,此时处于就绪状态。在线程运行之后,从等待或者睡眠中回来之后,也会处于就绪状态

  第三是运行状态。线程调度程序将处于就绪状态的线程设置为当前线程,此时线程就进入了运行状态,开始运行run函数当中的代码

  。

  第四是阻塞状态。线程正在运行的时候,被暂停,通常是为了等待某个时间的发生(比如说某项资源就绪)之后再继续运行。

  sleep,suspend,wait等方法都可以导致线程阻塞。

  第五是死亡状态。如果一个线程的run方法执行结束或者调用stop方法后,该线程就会死亡。对于已经死亡的线程,无法再使用start方法令其进入就绪
分享到:
评论

相关推荐

    Java线程:线程状态的转换

    4. **等待/阻塞/睡眠状态(Waiting/Blocked/Sleeping)**:这是线程的一种非活跃状态,其中三种状态的主要区别在于线程为何停止运行: - **等待状态(Waiting)**:通常是因为线程调用了某些方法(如`Object.wait()`)...

    基于java 线程的几种状态(详解)

    基于Java线程的几种状态详解 Java线程的状态是一个复杂的概念,它们之间的转换关系也非常重要。下面我们将详细解释Java线程的六种状态:New、Runnable、Blocked、Waiting、Timed waiting和Terminated。 1. 新创建...

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

    线程在Java中由`java.lang.Thread`类表示,其生命周期包括以下几种状态: 1. **新建**(New):当使用`new Thread()`创建了一个线程对象时,线程处于新建状态。 2. **可运行**(Runnable):调用`start()`方法后,...

    JAVA线程dump的分析

    在分析JAVA线程dump时,需要注意以下几点: 1. 不同的JAVA虚拟机的线程dump的创建方法和文件格式是不一样的,不同的JVM版本,dump信息也有差别。 2. 在实际运行中,往往一次dump的信息,还不足以确认问题,建议产生...

    Java多线程知识点总结

    在Java中,创建线程有几种常见的方式。第一种是通过继承Thread类并重写run方法来定义新的线程类。当创建此类的对象时,实际上就创建了一个新的线程。要启动线程,需要调用线程对象的start方法,这将让线程进入就绪...

    java线程入门级书籍

    线程间通信是指线程之间传递消息或数据的过程,主要包括以下几种方式: - **wait()和notify()方法**:这两个方法用于控制线程间的同步,`wait()`会使当前线程等待直到其他线程调用`notify()`或`notifyAll()`。 - **...

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

    阻止线程执行通常涉及以下几种方法: 1. 睡眠(Sleep):使用`Thread.sleep(long millis[, int nanos])`可以让当前线程暂停执行指定的毫秒数或纳秒数。睡眠结束后,线程回到可运行状态,但并不保证立即执行。如果在...

    JAVA单线程多线程

    这是Java实现线程安全的一种基本手段。 ##### 使用synchronized修饰方法 当`synchronized`用来修饰实例方法时,该方法称为同步方法。同一对象上的所有同步方法在同一时刻只能被一个线程访问。例如: ```java ...

    电子书《java线程》

    线程的生命周期包括新建、就绪、运行、阻塞和终止等状态,理解这些状态以及如何在这些状态之间转换是理解和使用Java线程的基础。 书中可能涵盖了以下几个关键知识点: 1. **线程的创建与启动**:通过创建Thread...

    Java线程:线程状态的转换[参考].pdf

    Java线程的状态转换是理解多线程编程的关键概念。线程在生命周期中经历五个主要状态:新状态、可运行状态、运行状态、等待/阻塞状态以及死亡态。 1. **新状态**:当通过`new Thread()`创建一个新的线程对象,但尚未...

    java线程实战手册

    2. **线程的启动与生命周期**:通过调用start()方法启动线程,线程将经历新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和终止(Terminated)等几个状态。 3. **线程同步机制**:Java提供了多种...

    Java线程讲解Java线程讲解

    5. **线程的生命周期**:线程在其生存周期中会经历以下几种状态: - **新建状态**:通过new语句创建线程后,线程处于新建状态。 - **就绪状态**:当调用start()方法后,线程进入就绪状态等待CPU调度。 - **运行...

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

    根据线程的状态变化,我们可以将线程的生命周期划分为以下几个阶段: 1. **新建状态**: - 当我们使用`new`关键字和`Thread`类或其子类建立一个线程对象时,该线程对象就处于新建状态。 - 此时,线程尚未开始运行...

    JAVA100例之实例64 JAVA线程间通讯

    在"JAVA100例之实例64 JAVA线程间通讯"这个主题中,我们将深入探讨Java中实现线程间通信的几种主要方法。 1. **共享数据**:最直观的线程间通信方式是通过共享内存空间,即共享变量。只要对共享变量的操作是线程...

    JAVA线程停止的方法

    取而代之的是,开发者通常采用以下几种策略: 1. **使用标志变量(Flag)** 2. **中断线程(Interrupt)** 3. **使用`ExecutorService`和`Future`** 其中,使用标志变量是最常见也最安全的方式之一,它允许线程...

    java常用的代码——线程

    Java线程具有以下几种状态: - **新建状态(New)**:当线程对象创建后,但尚未调用start()方法之前的状态。 - **就绪状态(Runnable)**:线程对象创建后已经调用了start()方法,或者线程处于阻塞状态获得了锁重新...

    Java的线程和Java AppletJava的线程和Java AppletJava的线程和Java Applet

    5. **线程状态**:Java线程有五种基本状态:新建、可运行、运行、阻塞和死亡。线程的状态转换反映了其生命周期的不同阶段。 6. **线程同步**:为了避免线程间的冲突,Java提供了多种同步机制,如`synchronized`...

    Java线程实现分析.pdf

    通过线程的控制和调度,可以使线程在这几种状态间转换。 四、 Java 线程的实现方法 1. 继承 Thread 类 首先通过继承 Thread 类,再重写父类 Thread 类实现 Runnable 接口的 run() 方法,可以让线程执行对应的任务...

    java 多线程并发实例

    Java的Thread类提供了start()来启动线程,interrupt()来中断线程,但需要注意的是,中断并不一定能立即停止线程,线程需要自行检查并响应中断状态。 另外,可能还会涉及到死锁、活锁和饥饿等并发问题,这些都是多...

Global site tag (gtag.js) - Google Analytics