案例
欣赏一下,如何使用线程句柄
HANDLE hThread = CreateThread(NULL, 0, ThreadFunc, this, 0, NULL);
if (hThread)
{
CloseHandle(hThread);
}
问题:线程句柄有什么用?
- 线程句柄是内核对象。线程,是工作流程。通过线程对象,能管理线程工作流程。比如,干掉线程,等待线程结束。
注:线程运行时,线程句柄是无信号状态。线程退出时,为有信号状态。 - CloseHandle只是表示,关闭一个线程句柄对象,不再对线程做任何干预。并不会结束线程
在线程结束时,如果没有关闭线程句柄对象。在进程执行期间,会造成,内核对象泄露,也就是句柄泄露。 - 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。