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变量的作用,并不是说真的把某些资源锁定住了(因为并没有函数来直接将该对象与某些资源进行直接绑定),而是通过在访问之前手动的进行询问,来造成了该资源被锁定的“假象”而已。
本文详细介绍了CRITICAL_SECTION作为互斥锁的使用方法,包括声明、初始化及如何在多线程环境下保护共享资源。通过具体实例展示了如何避免资源访问冲突。

3万+

被折叠的 条评论
为什么被折叠?



