多线程(二)-线程的状态
2023-03-31 11:05:02 时间
大佬的理解->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 死亡状态---
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十