最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Win32 临界区实现原理浅析
时间:2022-07-02 10:59:31 编辑:袖梨 来源:一聚教程网
Win32 临界区实现原理浅析
去年11月的MSDN杂志曾刊登过一篇文章,Matt Pietrek 和 Russ Osterlund 两位对临界区(Critical Section)的内部实现做了一次简短的介绍,但点到为止,没有继续深入下去,当时给我的感觉就是痒痒的,呵呵,于是用IDA和SoftIce大致分析了一下临界区的实现,大致弄明白了原理后也就没有深究。现在乘着Win2k源码的东风,重新分析一下这块的内容,做个小小的总结吧 :P
临界区(Critical Section)是Win32中提供的一种轻量级的同步机制,与互斥(Mutex)和事件(Event)等内核同步对象相比,临界区是完全在用户态维护的,所以仅能在同一进程内供线程同步使用,但也因此无需在使用时进行用户态和核心态之间的切换,工作效率大大高于其它同步机制。
临界区的使用方法非常简单,使用或函数初始化一个 CRITICAL_SECTION 结构;使用函数设置临界区的Spin计数器;然后使用或获取临界区的所有权;完成需要同步的操作后,使用函数释放临界区;最后使用
去年11月的MSDN杂志曾刊登过一篇文章,Matt Pietrek 和 Russ Osterlund 两位对临界区(Critical Section)的内部实现做了一次简短的介绍,但点到为止,没有继续深入下去,当时给我的感觉就是痒痒的,呵呵,于是用IDA和SoftIce大致分析了一下临界区的实现,大致弄明白了原理后也就没有深究。现在乘着Win2k源码的东风,重新分析一下这块的内容,做个小小的总结吧 :P
临界区(Critical Section)是Win32中提供的一种轻量级的同步机制,与互斥(Mutex)和事件(Event)等内核同步对象相比,临界区是完全在用户态维护的,所以仅能在同一进程内供线程同步使用,但也因此无需在使用时进行用户态和核心态之间的切换,工作效率大大高于其它同步机制。
临界区的使用方法非常简单,使用或函数初始化一个 CRITICAL_SECTION 结构;使用函数设置临界区的Spin计数器;然后使用或获取临界区的所有权;完成需要同步的操作后,使用函数释放临界区;最后使用
相关文章
- TPLink TLWDR5780 无线路由器修改无线名称及密码操作流程 09-02
- 歧路旅人0全职业角色有什么特点 09-02
- 胜利女神寂叶部队最强角色是什么 09-02
- 明末渊虚之羽单手剑双刀长枪轮椅如何打法加点 09-02
- 《盖瑞模组》攻略 简评 配置 下载 09-02
- 修真无限轮回手游主线剧情推进攻略修真无限轮回手游全流程通关指南 09-02