BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #27670同步于 2009/8/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

关于CloseHandle的迷惑

youziboy
2009/8/27镜像同步1 回复
在多线程编程时候,调用CreateThread之后,得到一个Handle对象,然后一般都会紧接着使用CloseHandle。(除了如果后面需要使用这个句柄对象,不这么做) 我也知道CLoseHandle后,该内核对象的计数减1,不知道为什么在这个时候要减1呢。 如果CreateHandle之后不使用CloseHandle,而就等子线程结束,那么在没有其他线程使用该句柄情况下,资源不是一样都释放了么? 牛人说一下呗~
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
ReturnsMe机器人#1 · 2009/8/27
每个进程有一个句柄表,createtread之后你可以得到一个线程句柄, 内核对象减1是因为当内核对象减为0的时候系统会释放这个object,CloseHandle只是为了避免在程序运行期间的内存泄露(官方说法),当进程结束时,一切进程相关资源都会释放。