线程、进程内核对象引用计数问题
来源:互联网 发布:燕十八mysql视频全套 编辑:程序博客网 时间:2024/05/01 06:25
一般,我们创建一个新的线程、互斥量等时,内核会为我们在内存的内核区生成一个对应的内核对象。注意:
- 内核对象是一个数据结构,而非可执行代码的地址,当然也不是某一资源(比如互斥量)本身。它只是一个数据结构,包含了一些成员变量,而这些变量记录着对应资源相关的信息(比如对象的引用计数)。
- 其中,进程对象以及线程对象与一般内核对象在创建后引用计数不同。
1。那么为什么有时候我们经常看到在创建线程后,立即使用CloseHandle来关闭线程句柄呢。
如果我们深入分析一下线程内核对象的数据结构,我们就知道原因了。在线程的内核对象中,有一个Handle成员变量,它保存着该线程对象的句柄。虽然我们不知道它是采用何种方式获得内核对象句柄的,但是我们可以肯定的是,这是由于该变量的存在,我们的线程内核对象的引用计数又增加了1。也就是,调用创建线程的函数后,线程内核对象引用计数变为2。所以,我们可以在创建后,立即关闭线程内核对象句柄,(只表示,调用线程对新线程不再感兴趣啦,新线程仍然继续执行,要知道,此时,引用计数为1,而非0,所以内核对象依然存在啊)。
- 线程、进程内核对象引用计数问题
- 线程、进程内核对象引用计数问题
- 获取内核对象的引用计数
- 线程核心对象的引用计数
- 进程、线程及内核对象
- linux 内核引用计数
- Linux内核引用计数
- 为什么CreateThread()调用创建线程时,系统设置线程内核对象的引用计数为1,在Create函数返回前是2
- 对象引用计数
- 对象引用 计数 原理
- iOS对象引用计数
- 对象、引用和引用计数
- python中对象引用计数的相关问题
- Linux内核的进程、线程问题
- Linux内核的进程、线程问题
- wiengine 引用计数问题
- 引用计数问题
- 引用计数的问题
- 高级程序员装逼指南
- 华为C语言编程规范(5)—可读性
- Oracle日志的深入分析
- 头疼—工科转入IT学习
- 华为C语言编程规范(6)—变量、结构
- 线程、进程内核对象引用计数问题
- 华为C语言编程规范(7)—函数、过程
- eclipse插件开发的一点总结
- SqlServer连接Mysql的方法之一(不通过LinkServer)
- 华为C语言编程规范(8)—程序效率
- extjs在线文档
- css实现强制不换行/自动换行/强制换行
- oracle 设置用户密码永不过期
- C语言实验——数日子