线程句柄何时关闭

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

 

最好在你刚创建完内核对象(包括线程,进程,事件等等)就立即调用
CloseHandle(HANDLE h)关闭该句柄,防止因遗忘而疏忽关闭它,造成内存泄漏。
当然,这些并不是必须的,因为在程序结束时,OS会把这一切处理得很完美。
但作为程序员,我想应该让自己的程序看上去无懈可击,不留任何遗憾,自己的感觉会
越来越好。

 

一般就是建立线程之后就可以关闭句柄了,只要以后不会使用到这个句柄

关闭句柄并不会影响线程执行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值