代码改变世界

多线程编程同步机制之临界区编程实例

2011-11-01 13:35  IanWong  阅读(707)  评论(0)    收藏  举报

临界区的基本概念

临界区:在同一个进程内的多个线程之间通过原子方式实现共享资源的串行化读写

临界区相关函数

CRITICAL_SECTION cs;

::InitializeCriticalSection(&cs);

::EnterCriticalSection(&cs);

::LeaveCriticalSection(&cs);

::DeleteCriticalSection(&cs);

临界区编程实例

实例一:临界区基本使用方法

image

输出结果(注掉13,17,没有进行临界区同步):

image

输出结果(临界区同步):

image

实例二:使用临界区对象创建自动锁

image

CriticalSection:封装 Windows CRICITAL_SECTION 用户对象

AutoLock:封装CriticalSection的操作,让它进入一个Scope的时候自动加锁,离开一个Scope的时候自动解锁

使用方式:

image