您的位置:首页 > 其它

线程的安全删除

2006-01-19 15:04 267 查看
前几天定位一个问题,发现是线程结束不当造成的内存泄漏。定位解决完成后,突然想起梁的这本书。我翻到他的关于线程的一段的描述:“当用_beginThread来创建,而用CloseHandle来关闭线程时,这时复制的全局结构就不会被释放了,这就有了内存的泄漏。……”对于这段描述其实是不全面的;如果在C++里面强行中止一段线程;线程中的临时对象也不会去调用自己的悉构函数来释放资源的,也就是说,强行中止一段线程不是一种安全的做法,真正好的做法不是用系统提供的API来结束线程,而是要用自己可控制的循环变量来调节线程,这才能构做到线程的安全中止。在c里面有一个叫做longjmp的API,如果在CPP函数体内调用此函数也会出现相同的漏洞。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: