不断创建查询线程,但没有释放线程句柄,知道程序退出时才释放,会对系统有什么影响吗?

wishfly 2006-09-15 10:13:24
有个问题:
不断创建查询线程,但没有释放线程句柄,知道程序退出时才释放,会对系统有什么影响吗?

例如:
HANDLE g_hThread = CreateThread(...,QueryThreadFunc,);

不断调用此函数启动查询线程,但没有及时释放g_hThread.
g_hThread是个全局变量, 也就是每次创建时都将句柄赋予一个值g_hThread.

这样作有问题吗?


...全文
354 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
maywemeet 2006-09-19
  • 打赏
  • 举报
回复
句柄应该关闭,确实会造成资源泄露,不是内存泄露。
楼主可以把程序开几十个小时,然后看该进程的句柄数和占用内存的大小。
DentistryDoctor 2006-09-18
  • 打赏
  • 举报
回复
当然有影响,如楼上所说。
templarzq 2006-09-15
  • 打赏
  • 举报
回复
handle类似于一个标识符,关闭它只是放弃对线程的控制和访问,和内存泄漏没关系的。
wishfly 2006-09-15
  • 打赏
  • 举报
回复
>>如果你不需要使用 g_hThread,可以在CreateThread后立刻关闭 CloseHandle( g_hThread )

你的意思是说,在CreateThread后,紧跟着就运行CloseHandle( g_hThread );???

哪会对线程运行有什么影响吗?

如果知道最后才运行CloseHandle( g_hThread );,会造成资源泄漏吗?
shenming123 2006-09-15
  • 打赏
  • 举报
回复
如果你不需要使用 g_hThread
可以在CreateThread后立刻关闭 CloseHandle( g_hThread );
zzw_happy 2006-09-15
  • 打赏
  • 举报
回复
必须关闭,一个程序能够创建的最大句柄是有个数限制的。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧