JAVA中,线程有哪五个基本状态?他们之间如何让转化?并简述线程周期。

 时间:2026-02-13 14:19:40

java中,每个线程都需经历新生、就绪、运行、阻塞和死亡五种状态,线程从新生到死亡的状态变化称为生命周期。用new运算符和Thread类或其子类建立一个线程对象后,该线程就处于新生状态。

JAVA中,线程有哪五个基本状态?他们之间如何让转化?并简述线程周期。

线程的生命周期,把图转化为文字就是: 

1、线程通过new方法创建,调用start,线程进入就绪状态,等待系统的调度(时间片轮转调度)。当系统调度,进入运行状态。正常结束或者异常退出,进程进入死亡状态。

2、处于运行状态的线程若遇到sleep,则线程进入睡眠状态,不会让出资源锁,sleep结束,线程转为就绪状态,等待系统重新调度。

3、处于运行状态的线程可能在等待io,也可能进入挂起状态。io完成,转为就绪状态。

4、处于运行状态的线程yield,线程转为就绪状态。(yield只让给权限比自己高的)

5、处于运行状态的线程遇到wait,线程处于等待状态,需要notify()/notifyALL来唤醒线程,唤醒后的线程处于锁定状态,获取了“同步锁”,之后,线程才转为就绪状态。处于运行的线程synchronized,加上后 变成同步操作。处于锁定状态,获取了“同步锁”,之后,线程才转为就绪状态。

  • 用numpy模块绘制随机散点图的基本方法
  • css田字格布局
  • js如何控制DIV中内容
  • CSS中,当鼠标移到层上,层怎么显示出边框?
  • 如何编写Unity继承于MonoBehaviour类的构造函数
  • 热门搜索
    石家庄旅游地图 新疆喀纳斯旅游 盐城旅游景点大全 互助旅游 韩国釜山旅游 香港迪士尼旅游 东钱湖旅游攻略 非洲旅游攻略 赴美旅游签证 杭州周边旅游攻略