首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

dll创建删除线程,内存增长有关问题

2012-04-23 
dll创建删除线程,内存增长问题我用VC6.0创建了一个Win32的动态链接库,这个连接库只有一个接口,用来创建线

dll创建删除线程,内存增长问题
我用VC6.0创建了一个Win32的动态链接库,这个连接库只有一个接口,用来创建线程,线程函数什么都没执行,直接返回0.
然后用VC6创建一个对话框程序,调用该接口,每5秒创建256个线程,每创建一次,内存增长32K左右。请问这是怎么回事?
线程创建方式CreateThread、AfxBeginThread都试过了。都会增长。

[解决办法]
CreateThread的话有 返回的线程句柄要自己来close
AfxBeginThread 要看属性了是不是自动删除 m_bAutoDelete的值来决定

[解决办法]
线程句柄是否CloseHandle(),不然会有句柄泄漏
[解决办法]
用CreateThread、AfxBeginThread这些在多线程的时候不安全,会存在内存泄露的可能,可以用__beginthreadex
[解决办法]
1、系统惰性释放内存,造成一种用户释放后并没有释放内存的情形

我如果用同样的方式直接在应用程序中创建线程,而不是调用动态库的接口创建,就不存在内存增长。
当动态库映射到进程地址空间后,和运用程序没有任何区别
所以不存在这种情况
你仔细检查检查你的代码
我认为是你的代码中有什么问题
[解决办法]
用工具检测, 比如BoundCheck

热点排行