为什么必须要使用CloseHandle关闭句柄
来源:互联网 发布:win7制作mac启动u盘 编辑:程序博客网 时间:2024/03/29 20:16
很多程序在创建线程都这样写的:
ThreadHandle = CreateThread(NULL,0,.....);
CloseHandel(ThreadHandle );
1,线程和线程句柄(Handle)不是一个东西,线程是在cpu上运行的.....(说不清楚了),线程句柄是一个内核对象。我们可以通过句柄来操作线程,但是线程的生命周期和线程句柄的生命周期不一样的。线程的生命周期就是线程函数从开始执行到return,线程句柄的生命周期是从CreateThread返回到你CloseHandle()。
2,线程句柄是一种内核对象,系统维护着每一个内核对象,当每个内核对象引用记数为0时,系统就从内存中释放该对象,CloseHandle就是将该线程对象的引用记数减1。所有的内核对象(包括线程Handle)都是系统资源,用了要还的,也就是说用完后一定要closehandle关闭之,如果不这么做,你系统的句柄资源很快就用光了。
只是关闭了一个线程句柄对象,表示我不再使用该句柄,即不对这个句柄对应的线程做任何干预了。并没有结束线程。
0 0
- 为什么必须要使用CloseHandle关闭句柄
- 为什么必须要使用CloseHandle关闭句柄
- 为什么必须要使用CloseHandle关闭句柄
- CloseHandle()函数(关闭线程句柄)的使用
- CloseHandle()函数(关闭线程句柄)的使用
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 创建线程后为什么马上调用CloseHandle()来关闭句柄
- 为什么wait()和notify()必须要使用sychronized
- windows thread 是否有必要调用closehandle 关闭线程句柄
- JDK的动态代理为什么必须要使用接口与使用CGLIB动态代理
- Java中final变量为什么在使用前必须要进行初始化
- 多线程CreateThread()之后,CloseHandle()为什么不会直接关闭线程。
- 句柄泄露与CloseHandle()
- 句柄泄露与CloseHandle()
- 句柄泄露与CloseHandle
- 霍夫变换直线检测理解
- 用产品思维设计API(四)——随意定义错误码,你还在这样干?
- hdoj 2036
- React全家桶之ES6(五)
- 详谈内存管理技术(一)
- 为什么必须要使用CloseHandle关闭句柄
- Hibernate进阶之多对多双向关联
- Integer Inquiry POJ - 1503
- 3n+1问题
- [leetcode]398. Random Pick Index
- 逃离or逃避:过年后,你还回不回大城市?
- [LeetCode]382. Linked List Random Node
- 学习
- android 现场保护三种解决方案