菜单
  

    TerminateThread强烈不建议使用,因为这个函数的执行是异步的,

    你无法保证调用之后会立即退出,同时线程的堆栈均不会被销毁,

    导致内存泄露。如果调用了这个函数,请确保使用WaitForSingleObject来等待线程对象的结束。

    ThreadHandle = CreateThread(NULL,0,.....);

    CloseHandel(ThreadHandle );//不会直接关闭线程,只是递减线程中的内核对象使用计数。当使用计数为0时,释放内核对象

    一、Createthread:创建线程后如何回收

    1.线程的生命周期就是线程函数从开始执行到return,这时候线程就自动回收了

     

    2.而线程句柄是一个内核对象。我们可以通过句柄来操作线程,句柄生命周期是从CreateThread返回到你CloseHandle(),closehandle后便释放句柄(如果不closehandle句柄资源很快用光)

     

    3.关闭一个句柄对象,表示不再使用该句柄操作线程(即不对线程做任何干预),但不会释放线程论文网,线程释放按上述1其生命周期完成。

    4.句柄操作线程例子,如WaitForSingleObject(ThreadHandle,1000)为等待线程1s的操作,假设判断10s后为线程超时的情况,不必调用TerminateThread杀线程,等其线程生命周期结束return即可

     

    二、调用TerminateThread杀线程的致命问题:

     

    TerminateThread终止线程后,堆栈没有被回收(注意连栈都没有被回收)

     

    整个进程在分配和回收内存时,占用同一把锁,如果一个线程在使用该锁时被杀死(即临死前该线程在new或delete操作中),则其他线程就无法再使用new或delete了,表现为hang住

  1. 上一篇:配对交易python策略源代码
  2. 下一篇:TerminateThread()CloseHandle()ExitThread()的区别
  1. 用户对网络新闻推荐方法的接受度调查问卷

  2. 生物学教学方法与学生能力培养调查问卷

  3. permission denied解决方法没有权限

  4. 展活动的科技信息传播模...

  5. 体罚女生的方法要羞刑

  6. performclick()方法如何使用performclick

  7. TerminateThread()CloseHandle()ExitThread()的区别

  8. Bootstrap的OpenGL人体模型仿真

  9. 淮安乐天玛特连锁超市4P营销策略分析

  10. 小学课堂教学效率国内外研究现状和参考文献

  11. 多智能体系统一致性问题研究

  12. MATLAB动车组列车牵引变流...

  13. PLC焊机电气控制系统设计开题报告

  14. PLC启闭机液压系统设计及其故障诊断

  15. 上市公司债务税盾文献综述和参考文献

  16. 跨国企业全球营销策略的市场定位调查

  17. 友谊质量调查问卷表

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回