windows核心编程-线程挂起和Context

一、线程挂起(暂停)

1、SuspendThread用来暂停一个线程的执行,线程暂停时,不会被调度执行

2、ResumeThread用来恢复一个暂停线程的执行(一个暂停的线程无法调用这个方法来恢复自己,

3、因为暂停的线程不可能被执行)暂停县城总是立即被暂停,而不管被暂停的线程执行到了哪个指令

线程内核对象内部,存储了一个暂停计数的值,每调用一次,SuspendThread方法该值就加1,

调用ResumeThread一次该值就减1当该值为0时,就表示该线程可以被调用执行了,但不会被立即执行,

所以多次被Suspend的线程不能期望调用一次Resume方法就恢复

4、这两个方法入口参数为线程的句柄

5、线程函数内部可以通过Sleep或者SleepEx方法自行暂停一定时间后自动恢复执行,但是这个暂停时间

对于系统调度程序来说只是一个参考值,调度程序不能保证精确的暂停指定的时长,通常暂停时长会长于

指定的暂停时长

二、线程的暂停式创建(下面例子1)

1、在调用CreateThread创建线程时,可以明确指定以暂停方式创建线程(CREATE_SUSPENDED)

2、如果没有暂停方式执行的话,创建线程的行为将比较难以控制,有可能调度程序在CreateThread返回

前就开始执行新线程,也有可能在返回之后才去调度执行新线程,很难预期

3、所以,推荐创建线程都以暂停标志创建知道CreateThread返回,并做了一些必要的处理后&#

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值