用户模式下线程同步(一)
来源:互联网 发布:淘宝企业店铺名字大全 编辑:程序博客网 时间:2024/05/29 03:39
关键段(critical section)是一小段代码,他在执行之前需要独占对一些共享资源的访问权。 这段代码的执行可以理解为原子方式。
一、关键段结构
CRITICAL_SECTION
有个比喻很形象。一个CRITICAL_SECTION结构就像飞机上的一个卫生间,而马桶则是我们想要保护的数据。由于卫生间很小,因此在同一时刻只允许一个人(线程)在卫生间(关键段)内是使用马桶(被保护的资源)
二、常用函数
EnterCriticalSection
LeaveCriticalSection
InitializeCriticalSection
DeleteCriticalSection
TryEnterCriticalSection
InitializeCriticalSectionAndSpinCount
三、要点
1、在使用CRITICAL_SECTION的时候,两个必要条件。第一、使用关键段的线程必须知道CRITICAL_SECTION对象的地址;第二,在使用之前,CRITICAL_SECTION结构必须被初始化。
2、EnterCriticalSection和LeaveCriticalSection成对出现
3、TryEnterCriticalSection可以跳过关键段执行,返回为true时,才执行关键段,开始执行后必须调用LeaveCriticalSection结束;
4、如果线程因为关键段资源被占用,切换到等待状态,这意味着线程必须从用户模式切换到内核模式(大约1000个CPU周期),切换的开销非常大。所以可以在切换到等待状态之前使用旋转锁进行等待。如果旋转一定次数后还没有获得资源,再切换的等待状态。
- 用户模式下线程同步(一)
- 用户模式下线程同步(一)
- 用户模式下线程同步(二)
- 用户模式下线程同步(二)
- 用户模式下线程同步
- 用户模式下线程同步
- windows 核心编程(用户模式下的线程同步)
- windows-用户模式下的线程同步(整理)
- Windows核心编程:(五)用户模式下线程同步
- 用户模式下的线程同步
- 用户模式下的线程同步
- Chapter08-用户模式下的线程同步
- 用户模式下的线程同步
- 八、 用户模式下的线程同步
- 八 用户模式下的线程同步
- 用户模式下的线程同步
- Chapter08-用户模式下的线程同步
- 用户模式下的线程同步
- 使用Dom4j解析XML
- android网络编程——http post 和 http get
- 在HTM上运行单视点全I帧情况
- POJ 1466 - Girls and Boys(二分图匹配)
- Redis学习笔记(一)---redis安装与部署
- 用户模式下线程同步(一)
- c语言常量
- 第7、8、9、10、11、12题
- Android 系统属性SystemProperty分析 Android System Property 一 System Property
- 解决通过PathVariable接收数据的乱码问题
- windows命令行
- ckeditor4.1配置和使用
- 第三章总结
- js特效之无缝滚动