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

818

被折叠的 条评论
为什么被折叠?



