关闭句柄的作用?

chen327684096 2012-05-07 08:13:30
是为了释放系统资源吗?或者为了安全因素考虑?
如果不关闭句柄会出现什么情况?所有的句柄都应该在用完会马上关闭?
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuwons 2012-05-07
  • 打赏
  • 举报
回复
++[Quote=引用 1 楼 的回复:]

引用
webber84
大神的回答:

操作系统用一个线程内核对象来管理线程,一个句柄就标识了一个内核对象,你只有通过这个句柄才能访问线程。内核对象有一个引用计数,表明当前有多少句柄关联到这个内核对象,当该计数为0时,系统就会销毁这个对象。CloseHandle的作用就是关闭一个句柄,使用线程内核对象的引用计数减一。注意只是引用计数减一,不会关闭你创建的线程。所以,如果你创建了一个线程并……
[/Quote]
W170532934 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

引用
webber84
大神的回答:

操作系统用一个线程内核对象来管理线程,一个句柄就标识了一个内核对象,你只有通过这个句柄才能访问线程。内核对象有一个引用计数,表明当前有多少句柄关联到这个内核对象,当该计数为0时,系统就会销毁这个对象。CloseHandle的作用就是关闭一个句柄,使用线程内核对象的引用计数减一。注意只是引用计数减一,不会关闭你创建的线程。所以,如果你创建了一个线程并……
[/Quote]
+++
W170532934 2012-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

引用
webber84
大神的回答:

操作系统用一个线程内核对象来管理线程,一个句柄就标识了一个内核对象,你只有通过这个句柄才能访问线程。内核对象有一个引用计数,表明当前有多少句柄关联到这个内核对象,当该计数为0时,系统就会销毁这个对象。CloseHandle的作用就是关闭一个句柄,使用线程内核对象的引用计数减一。注意只是引用计数减一,不会关闭你创建的线程。所以,如果你创建了一个线程并……
[/Quote]
+++
SBCDJ 2012-05-07
  • 打赏
  • 举报
回复
引用
webber84
大神的回答:

操作系统用一个线程内核对象来管理线程,一个句柄就标识了一个内核对象,你只有通过这个句柄才能访问线程。内核对象有一个引用计数,表明当前有多少句柄关联到这个内核对象,当该计数为0时,系统就会销毁这个对象。CloseHandle的作用就是关闭一个句柄,使用线程内核对象的引用计数减一。注意只是引用计数减一,不会关闭你创建的线程。所以,如果你创建了一个线程并且不会再去访问它,就可以立即调用CloseHandle,这不会对线程运行有任何影响;当线程运行完毕以后,你应该调用CloseHandle(如果以前没有调用过的话),否则线程内核对象的引用计数仍大于0,系统仍然会保留它(即使你已经不会再去访问它了),这显示会造成一些内存的浪费。

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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