线程的状态详解编程语言
2023-06-13 09:20:41 时间
要想实现多线程,必须在主线程中创建新的线程对象。任何线程一般具有5种状态,
即 创建、就绪、运行、阻塞、终止。线程状态的转移与方法之间的关系如图所示
在程序中用构造方法创建了一个线程对象后,新的线程对象便处于新建状态,此时,它已经有了相应的
内存空间和其他资源,但还处于不可运行状态。新建一个线程对象可采用Thread类的构造方法来实现
例如:Thread thread = new Thread();
2、就绪状态新建线程对象后,调用该线程的start()方法就可以启动线程。当线程启动时,线程进入就绪状态
此时,线程将进入线程队列排队,等待CPU服务,这表明它已经具备了运行条件
3、运行状态当就绪状态的线程被调用并获得处理器资源时,线程就进入了运行状态。此时,自动调用该线程对象的
run()方法。run()方法定义了该线程的操作和功能。
4、堵塞状态一个正在执行的线程在某些特殊情况下,如被人为挂起或需要执行耗时的输入/输出操作时,将让出CPU并暂时
中止自己的执行,进入堵塞状态。在可执行状态下,如果调用sleep()、suspend()、wait()等方法,线程都将
进入堵塞状态。堵塞时,线程不能进入排队队列,只有当引起堵塞的原因被消除后,线程才可以转入就行状态。
5、死亡状态线程调用stop()方法时或run()方法执行结束后,即处于死亡状态。处于死亡状态的线程不具有继续运行的能力。
作者:blog.ytso.com
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/14285.html
c相关文章
- NanoMQ Newsletter 2022-08|v0.11:MQTT 5.0 + MQTT over QUIC 桥接,新增 HTTP API 监控客户端状态
- 9.线程的状态
- 刚装上的打印机就无法打印,显示为脱机状态,看我如何快速解决
- fastadmin后台 点击开关 弹出 你没有权限访问 角色组里面添加了,除了超级管理员其他的只要用状态开关就,没权限 解决办法
- 【Java 并发编程】线程简介 ( 并发类型 | 线程状态 | CPU 数据缓存 )
- kubernetes安装prometheus监控集群状态
- django 通用导航栏选中状态实现(前后端不分离)
- 如何通过浏览器查看nginx服务器状态?
- MySQL Status Max_used_connections 数据库状态作用意思及如何正确
- MySQL Status Mysqlx_worker_threads 数据库状态作用意思及如何正确
- Linux查看线程运行状态:简明指南(linux查看运行的线程)
- 监测Redis运行状态实时监测(redis运行状态)
- 深入探究Linux线程运行状态(linux线程运行状态)
- Linux下进程状态的分类和特性详解(linux进程状态)
- 揭秘Linux网络连接的状态构造(linux网络连接状态)
- 如何使用 Linux 系统查看硬盘状态和信息?(linux系统查看硬盘)
- 如何查看Redis集群状态(如何看redis集群状态)
- HTTP 状态码有哪些?该怎么用?
- c#共享状态的文件读写实现代码
- C#通过接口与线程通信(捕获线程状态)示例代码
- DevExpress实现GridControl同步列头checkbox与列中checkbox状态