终止线程

1 入口函数返回

最正确的方式,只有这样才能保证住主线程的所有资源都已经被正确的清理
入口函数在返回时,为确保以下几件事情已经完成
1 主线程所创建的任何对象都已经被正确的销毁
2 操作系统会正确的释放线程的堆栈
3 将进程的退出代码设置成入口函数的返回值
4 递减内核对象的使用计数


2 进程中的一个线程调用ExitProcess

不应调用此函数来结束进程,当函数被调用的时候会强制结束进程,并将退出代码设置为uExtiCode,单此时线程并未正确结束,会导致线程无法正确被清理
风险很高 全局对象 没有办法被正确的被释放 所以内核对象不会被正确的释放 最后导致内核不足 系统崩溃


3 另一个进程中的线程调用TermitateProcess

不应该用次函数来结束进程,此函数能够结束其他进程


4 进程中的所有线程都自然死亡

很少碰到这种情况,理论存在




使用计数  
创建的时候 为+1
会使用procInfo 会变成+1 (2)
退出-1 
在使用CloseHande -1
为0的时候内核对象被回收


内核对象泄露是比内存泄露更麻烦的事情  
内存泄露可以关闭程序来解决  
内核对象泄露只能重启
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值