多线程(二)-线程的状态
大佬的理解->Jaca多线程(一)多线程基础
1、线程状态关系
2、线程的状态分析
线程的五种状态:创建-就绪-运行-阻塞-死亡
1.创建状态
创建线程对象之后,尚未调用其start方法之前;
2.可运行状态:就绪和运行
1)当调用start()方法启动线程之后,如果cup没有给当前线程分配资源,当前线程就是就绪状态;
2)一旦获到cpu分配的资源,就进入运行状态;
3.运行状态:线程获得cpu资源,开始运行;
4.阻塞状态
一个正在运行的线程因某种原因不能继续运行时,进度阻塞状态。阻塞状态一种“不可运行”的状态,而处于这种状态的线程在得到一个特定的事件之后会转回可运行的状态;
5.死亡状态
一个线程的run()方法执行完毕,stop()方法被调用或在运行过程中出现未捕捉的异常时,线程进入死亡状态,线程就不可以再次执行;
3、案例
案例
public class MyThreadState implements Runnable{
@Override
public void run() {
System.out.println("---3 运行状态---");
//线程休眠,单位是毫秒
try {
System.out.println("---4.1 进入阻塞--");
Thread.sleep(2000);
System.out.println("---4.2 恢复运行状态---");
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("---5.1死亡状态---");
}
System.out.println("---5.2 死亡状态---");
}
public static void main(String[] args) {
//线程的状态演示
MyThreadState myThreadState = new MyThreadState();
Thread thread = new Thread(myThreadState);
System.out.println("---1 创建状态---");
thread.start();
System.out.println("---2 就绪状态---");
}
}
运行结果
---1 创建状态---
---2 就绪状态---
---3 运行状态---
---4.1 进入阻塞--
---4.2 恢复运行状态---
---5.2 死亡状态---
分类:
多线程
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?