(CloseHandle函数)内核对象、进程和线程

从CloseHandle函数说起,三者之间的关系,

 

这个函数是关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。

在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。

 若在线程执行完之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程度上的负面影响。

但当进程结束退出后,系统会自动清理这些资源。

 

也就是这么说,

内核对象的结束:

CloseHandle函数是来尽力促进内核对象结束的,但不是立刻结束内核对象,因为内核对象的结束是以使用计数为依据。

进程的结束:参看本空间博客《进程相关》

线程的结束:参看本空间博客《windows核心编程心解--进程相关》

你可能感兴趣的:((CloseHandle函数)内核对象、进程和线程)