关于CRITICAL_SECTION的一些理解
2015-02-11 09:57
260 查看
CRITICAL_SECTION 本质上来说就是一个互斥锁,用法如下:
1.声明一个CRITICAL_SECTION对象:CRITICAL_SECTION g_cs;一个数组对象:int a[10];
2.初始化临界区:InitializeCriticalSection(&g_cs);
3.在所有需要对数组a[10]进行操作的地方,操作前加入:EnterCriticalSection(&g_cs);操作后加入:LeaveCriticalSection(g_cs);来保证在操作之前,已经问过互斥锁了。
个人理解:
CRITICAL_SECTION对象其实更 倾向于一个平时所用的flag变量的作用,并不是说真的把某些资源锁定住了(因为并没有函数来直接将该对象与某些资源进行直接绑定),而是通过在访问之前手动的进行询问,来造成了该资源被锁定的“假象”而已。
1.声明一个CRITICAL_SECTION对象:CRITICAL_SECTION g_cs;一个数组对象:int a[10];
2.初始化临界区:InitializeCriticalSection(&g_cs);
3.在所有需要对数组a[10]进行操作的地方,操作前加入:EnterCriticalSection(&g_cs);操作后加入:LeaveCriticalSection(g_cs);来保证在操作之前,已经问过互斥锁了。
个人理解:
CRITICAL_SECTION对象其实更 倾向于一个平时所用的flag变量的作用,并不是说真的把某些资源锁定住了(因为并没有函数来直接将该对象与某些资源进行直接绑定),而是通过在访问之前手动的进行询问,来造成了该资源被锁定的“假象”而已。
相关文章推荐
- 关于内核中spinlock的一些个人理解
- 关于多线程同步的几点疑问(以CRITICAL_SECTION 为例)
- 关于C#3.0和.net一些问题的理解
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- 关于CRITICAL_SECTION与 CMutex 的看法
- 关于编码的一些认识和理解(Kemin原创)
- 关于多线程同步的几点疑问(以CRITICAL_SECTION 为例)
- __atribute__使用:关于_attribute__ ((used,__section__(".xxxx")))的理解
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- 关于VLAN的一些理解(图文并茂,推荐新手阅读)
- 关于bitmap的一些理解
- 关于new、delete和堆的一些理解
- 关于CRITICAL_SECTION、CCriticalSection和信号量的问题
- 关于最新出台的政策的一些理解
- 关于CRITICAL_SECTION、CCriticalSection和信号量的问题
- 关于JAXB的一些理解
- 关于SAX,DOM,JAXP,JDOM,DOM4J的一些理解
- 关于多重继承的一些理解
- 关于c#中的一些感念的理解。