社区
进程/线程/DLL
帖子详情
线程运行结束后,必须closehandle吗?
yu4233
2006-03-21 11:53:35
我有一个程序,主线程接收到用户操作后,就会_beginThreadEx一个线程来执行用户的请求,线称运行一段时间后,自己会有出口条件,能自己退出。请问:我需要在线称退出后调用closeHandle吗?不调用的话会导致内存泄漏吗?
...全文
671
12
打赏
收藏
线程运行结束后,必须closehandle吗?
我有一个程序,主线程接收到用户操作后,就会_beginThreadEx一个线程来执行用户的请求,线称运行一段时间后,自己会有出口条件,能自己退出。请问:我需要在线称退出后调用closeHandle吗?不调用的话会导致内存泄漏吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
striking
2006-03-30
打赏
举报
回复
楼主, 怎么会这样给分??
严重抗议。
xiaoxiangfei
2006-03-23
打赏
举报
回复
你就用_beginthread 及到时在线程中_endthread。就不要用CloseHandle了。
DentistryDoctor
2006-03-22
打赏
举报
回复
Just handle leak,not memory leak.
蒋晟
2006-03-22
打赏
举报
回复
1 是
2 不会,但是有句柄泄漏
lzzqqq
2006-03-22
打赏
举报
回复
应该养成关闭Handle的习惯,当然不关闭也不会泄漏内存,但不是C++所提倡的.
如果不关闭,那就成了Java了,
mythay
2006-03-22
打赏
举报
回复
可以,当然不影响线程运行。
yu4233
2006-03-22
打赏
举报
回复
我如果创建线程后不需要再对线程进行其他的处理,比如:resumeThread,suspendThread等,我可以在线程刚刚创建完成后就closeHandle线程句柄吗????这样是不是就不会句柄泄漏了??? 这样会影响线程的正常运行吗?????
mythay
2006-03-22
打赏
举报
回复
是不是关闭线程句柄?如果是,那么
1.他不会引起内存泄漏,不过会占用一些系统资源
2.如果你不再使用(比如得到退出代码,等待退出之类),还是关了好,毕竟是良好的编程习惯。
xqk
2006-03-22
打赏
举报
回复
不会造成泄漏,但一定要关闭句柄,否则浪费系统资源
striking
2006-03-22
打赏
举报
回复
我也来说一下吧
线程创建后, 运行结束没有CloseHandle将带来几个负面效应
1. 虽然你不CloseHandle来显示关闭一个线程对象, 操作系统在进程结束也会帮你完成, 但是如果你的进程经常创建线程, 这样会产生资源的泄漏. 对效率有一个影响.
2. 如果线程内产生了一个文件对象, 文件对象被进程拥有, 非线程拥有, 进程结束之前没有办法清理
3. and so on...
一个傻冒
2006-03-22
打赏
举报
回复
CloseHandle是为线程内核计数器减1.
如果不这样做的话,会造成内核资源的泄漏
oyljerry
2006-03-22
打赏
举报
回复
会造成句柄泄漏,浪费资源
线程
close
handle
线程
运行
结束
后,
必须
close
handle
吗?楼主yu4233(于)2006-03-21 23:53:35 在 VC/MFC / 进程/
线程
/DLL 提问我有一个程序,主
线程
接收到用户操作后,就会_beginThreadEx一个
线程
来执行用户的请求,线称
运行
一段时间...
线程
创建后为什么要调用
Close
Handle
很多程序在创建
线程
都这样写的: ............ Thread
Handle
= CreateThread(NULL,0,.....);
Close
Handel(Thread
Handle
...
线程
怎么
运行
呢? ================================================ Closing
创建
线程
后为什么关闭了
线程
句柄,
线程
还是可以
运行
?
但保持这个句柄不关闭,并不是
线程
运行
的条件。 关闭
线程
句柄只是释放句柄资源,新开启
线程
后,如果不再利用其句柄,应该关闭句柄,释放系统资源。关闭
线程
句柄和
线程
的
结束
与否没有关系。 句柄可以认为是系统...
CreateThread后立即
Close
Handle
,为什么
线程
还在
运行
?
最近回顾了下多
线程
的东西,碰到
Close
Handle
函数,之前也碰到过,但是自己积累不足,所以也没理解明白。这次再次碰到,想想积累的也差不多了,索性就搞个明白。 函数说明 BOOL
Close
Handle
(
HANDLE
hObject); ...
创建
线程
后为什么马上调用
Close
Handle
()来关闭句柄
如上面这样的代码,原因为:创建
线程
后返回了
线程
句柄,新创建的
线程
内核对象的使用计数是2,一个是
线程
本身,一个是创建
线程
的
线程
,创建
线程
的
线程
close
handle
后,新的
线程
的内核对象使用计数为1,当这个新线
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章