Windows线程启动到消亡的运行状态
来源:互联网 发布:汽修管理系统源码 编辑:程序博客网 时间:2024/05/29 02:43
线程在被创建出来后会经历,启动->运行->挂起->休眠->消亡几个状态。启动和消亡在以前的帖子里都已经讲烂了,在这里主要说下运行,挂起,还有休眠的状态。
运行:CPU的抢栈式的运行方式,导致了线程在运行过程中会来回切换。这样就会不停的读取CONTEXT,大致流程是:保存CONTEXT->切换线程执行->切换回来->读取CONTEXT。注意了,这里用了个词叫切换,其实不然,运行过程中线程也是处于一种挂起状态,只是这种挂起状态和接下来要说的线程挂起状态有所不同,为了达到区分的目的。这里跟换了用词,切换。
挂起:SuspendThread(HANDLE)挂起线程,ResumeThread(HANDLE)结束挂起。这里可以调用这两个API来实现线程的挂起,传递的参数都是要挂起的线程句柄。
挂起->其实就是对线程里的暂停计算+1,退出挂起的时候,将暂停计数-1.,当暂停计数不为0的时候,线程是不会继续运行的,所以,一切都卡住了。
强调下:这里和运行中的挂起有什么区别了。运行中的挂起不会对暂停计数有操作,强调。。。。不会对暂停计数有操作。
休眠:休眠其实就是我们的Sleep(time),休眠状态代表着在休眠的这段时间里,我的线程停止运作,不会被调用。
注意Sleep(0)这个用法,这个用法表示的意思是将线程时间片给别人运作,线程虽然休眠的时间没有,但是CONTEXT依然会被重新装载一次。
阅读全文
0 0
- Windows线程启动到消亡的运行状态
- Windows线程启动和消亡详解
- 20170618Windows10_04_线程从启动到消亡、创建线程
- 线程(从创建到消亡的过程)
- Java-线程的运行状态
- 查看线程的运行状态
- Java 线程的创建与消亡
- Java 线程的创建与消亡
- 如何用SC获得Windows Service的启动类型,运行状态, 修改启动类型
- day10 反射创建数组 线程的基本概念 线程的编写和启动方式 线程的运行状态以及状态转换方法 线程的调度和优先级设置
- 调查:Windows消亡的命运不可避免
- Windows Service开发日志四(用程序设置服务的运行状态及启动方式)
- 线程的几种可运行的状态
- 线程的生命周期---运行和阻塞状态
- java线程运行状态
- java 线程运行状态
- windows线程状态
- 线程的初始化到运行过程
- JAVA GUI重要知识点学习心得
- sphinx教程2---安装、配置和使用
- MyBatis集合Spring(四)之使用Spring处理事务
- 解析c语言中可变参数列表
- centos6.4 /etc/resolv.conf文件改了重启网络就自动还原了
- Windows线程启动到消亡的运行状态
- PHP 导出csv格式excel
- 如何检验你是否是一个合格的初级java开发者
- 文件指针偏移的相关函数(rewind ftell fseek)
- HDU
- Java数据结构---冒泡排序
- [DP] HDU 1024
- java中GC测试总结
- Ubuntu 安装docky