Java 线程的6种状态(简单介绍)

本文详细介绍了Java线程的六种状态:初始、运行、阻塞、等待、超时等待和终止状态,并解释了状态之间的转换,以及如何进入和离开这些状态。线程在运行过程中可能会经历这些状态,例如,NEW状态是线程创建后尚未启动,RUNNABLE状态包括运行和就绪,BLOCKED状态在线程等待锁时发生,WAITING和TIME_WAITING涉及线程等待,而TERMINATED表示线程已执行完毕。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Java线程的状态网上的说法不一,有的说是6种状态,有的说是5中状态,索性就查看了一下Java源码。Thread类里面有一个枚举类,如下:

public enum State {
    NEW,
    RUNNABLE,
    BLOCKED,
    WAITING,
    TIMED_WAITING,
    TERMINATED;
}

这个枚举类里面有6种类型,所以Java中的线程有6种状态。

关于各种状态的简单说明:

  1. NEW(初始):线程被创建后尚未启动。
  2. RUNNABLE(运行):包括了操作系统线程状态中的Running和Ready,也就是处于此状态的线程可能正在运行,也可能正在等待系统资源,如等待CPU为它分配时间片。
  3. BLOCKED(阻塞):线程阻塞于锁。
  4. WAITING(等待):线程需要等待其他线程做出一些特定动作(通知或中断)。
  5. TIME_WAITING(超时等待):该状态不同于WAITING,它可以在指定的时间内自行返回。
  6. TERMINATED(终止):该线程已经执行完毕。

状态图
Java线程的状态

1. 初始状态

通过继承Thread类或实现Runnable接口得到一个线程类,new一个实例出来,这个生成的线程就进入了初始状态。

该线程没有被start()启动,但也不代表调用了start()状态就立即改变状态,中间还有一些步骤,如果在这个启

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值