(CloseHandle函数)内核对象、进程和线程
2012-11-23 14:53
197 查看
从CloseHandle函数说起,三者之间的关系,
这个函数是关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。
在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。
若在线程执行完之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程度上的负面影响。
但当进程结束退出后,系统会自动清理这些资源。
也就是这么说,
内核对象的结束:
CloseHandle函数是来尽力促进内核对象结束的,但不是立刻结束内核对象,因为内核对象的结束是以使用计数为依据。
进程的结束:参看本空间博客《进程相关》
线程的结束:参看本空间博客《windows核心编程心解--进程相关》
这个函数是关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。
在CreateThread成功之后会返回一个hThread的handle,且内核对象的计数加1,CloseHandle之后,引用计数减1,当变为0时,系统删除内核对象。
若在线程执行完之后,没有调用CloseHandle,在进程执行期间,将会造成内核对象的泄露,相当于句柄泄露,但不同于内存泄露,这势必会对系统的效率带来一定程度上的负面影响。
但当进程结束退出后,系统会自动清理这些资源。
也就是这么说,
内核对象的结束:
CloseHandle函数是来尽力促进内核对象结束的,但不是立刻结束内核对象,因为内核对象的结束是以使用计数为依据。
进程的结束:参看本空间博客《进程相关》
线程的结束:参看本空间博客《windows核心编程心解--进程相关》
相关文章推荐
- 进程与线程(五)用内核对象进行线程同步(上)
- 2014-03-13周四:关闭文件、文件映射、进程、线程、安全和同步对象等的CloseHandle函数,安全描述函数ConvertStringSecurityDescriptorToSecurity
- 进程与线程(六)用内核对象进行线程同步(下)
- 进程、线程及内核对象
- 线程、进程内核对象引用计数问题
- 线程、进程内核对象引用计数问题
- 设计一个模块,功能是列出系统中所有内核线程的程序名、PID号和进程状态。
- 获取当前进程/线程的ID、句柄和内核地址
- Windows核心编程<读书笔记九>线程与内核对象的同步
- c++事件内核对象(event)进程间激活(转)
- Linux内核进程 线程 用户空间线程进程
- 第九章 线程与内核对象的同步(1)
- C++实现线程同步的几种方式 线程同步是指同一进程中的多个线程互相协调工作从而达到一致性。之所以需要线程同步,是因为多个线程同时对一个数据对象进行修改操作时,可能会对数据造成破坏,下面是多
- linux常见进程与内核线程
- 内核线程和进程的区别
- 线程与内核对象的同步
- linux内核学习之进程和线程
- TerminateThread 与 该线程创建的内核对象 无关
- 第九章 线程与内核对象的同步(2)
- 跨越进程边界共享内核对象【复制对象句柄】