创建线程后为什么马上调用CloseHandle()来关闭句柄
来源:互联网 发布:linux用man查看 编辑:程序博客网 时间:2024/04/29 11:54
hThread = CreateThread( NULL, 0, ThreadFunc, NULL, 0, &dwThreadId);
CloseHandle(hThread);
如上面这样的代码,原因为:创建线程后返回了线程句柄,新创建的线程内核对象的使用计数是2,一个是线程本身,一个是创建线程的线程,创建线程的线程closehandle后,新的线程的内核对象使用计数为1,当这个新线程结束运行后内核对象的使用计数还要减1,这时内核对象的使用计数是0,则系统会自动删除新线程的内核对象,这是正常的处理流程。
如果不调用CloseHandle();则新线程运行结束后,由于使用计数为1,所以不会删除线程内核对象,这样就会造成内存泄漏。当然在整个程序运行结束后,操作系统会回收这些内存,因此可以知道如果不调用CloseHandle()的话,在程序运行阶段会造成内存泄漏!
阅读全文
0 0
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 线程创建后为什么要调用CloseHandle
- 创建线程后马上CloseHandle(threadhandle)起什么作用
- 创建线程后马上CloseHandle(threadhandle)的作用
- 创建线程后马上CloseHandle(threadhandle)起什么作用
- 创建线程后马上CloseHandle(threadhandle)起什么作用
- 创建线程后马上CloseHandle(threadhandle)起什么作用
- windows thread 是否有必要调用closehandle 关闭线程句柄
- 为什么必须要使用CloseHandle关闭句柄
- 为什么必须要使用CloseHandle关闭句柄
- 为什么必须要使用CloseHandle关闭句柄
- 创建线程后为什么关闭了线程句柄,线程还是可以运行?
- 创建线程后为什么关闭了线程句柄,线程还是可以运行?
- 创建线程后为什么关闭了线程句柄,线程还是可以运行?
- Hdu 6203 ping ping ping dfs序+树状数组维护
- mysql总结(二)
- [Leetcode] #121#122#123#188 Best Time to Buy and Sell Stock I & II & III & IV
- jsp 中${ } 是什么意思? <c:forEach var="mem" items="${memberList}">中的c:forEach 是什么写法,什么意
- Python黑魔法 --- 异步IO( asyncio) 协程
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 购物车,TextView右上角实现红色数字变化的实现
- 配置docker官方源并用yum安装docker
- Java的设计模式---工厂方法模式
- redis笔记
- #leetcode编程日记#529. Minesweeper
- HDU 4907 Task schedule
- 小白学习微信小程序指南
- OpenCV基于傅里叶变换以及霍夫直线检测的旋转文本校正