线程同步之临界区域
2011-11-07 14:23
246 查看
临界区用来保护一段代码,它要求执行以前获得对共享数据的独占访问权,由于它不是内核对象,因此只能用于同步单个进程中的线程,并且一次只能允许一个线程取得对某个数据区的访问权。
下面是会用到的一些函数。
//进入临界区域[/code]
//进入临界区域,区别在于从不挂起线程,立即返回。[/code]
//离开临界区域[/code]
临界区域非内核对象,因此会出现死锁的情况,并且只能用于同一进程的不同线程之间的同步,同一时刻只能有一个线程被唤醒,优点在于简单易用,速度快。
下面是会用到的一些函数。
void InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection );//初始化临界区域[/code]
void EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection );
//进入临界区域[/code]
BOOL TryEnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection );
//进入临界区域,区别在于从不挂起线程,立即返回。[/code]
void LeaveCriticalSection( LPCRITICAL_SECTION lpCriticalSection );
//离开临界区域[/code]
void DeleteCriticalSection( LPCRITICAL_SECTION lpCriticalSection );
//删除临界区域
临界区域非内核对象,因此会出现死锁的情况,并且只能用于同一进程的不同线程之间的同步,同一时刻只能有一个线程被唤醒,优点在于简单易用,速度快。
相关文章推荐
- window下线程同步之(Critical Sections(关键代码段、关键区域、临界区域)
- window下线程同步之(Critical Sections(关键代码段、关键区域、临界区域)
- linux线程同步之互斥锁——linux的关键区域
- (转)进程同步之临界区域问题及Peterson算法
- 线程同步之利器(2)——区域锁(Scoped locking)
- Critical Section Objects(临界区域)的使用
- 线程同步:CriticalSection关键区域
- linux中线程同步之区域锁(Scoped locking)
- linux线程同步之互斥锁——linux的关键区域
- c++临界区域-加锁
- C/C++ Windows API——多线程加锁与临界区域
- C++ 浅说Windows多线程临界区域(Critical Section)
- 进程同步之临界区域问题及Peterson算法
- 线程同步之利器(2)——区域锁(Scoped locking)
- 进程同步之临界区域问题及Peterson算法
- 临界区域问题
- Critical Section(关键区域,临界区域)
- 进程同步之临界区域问题及Peterson算法
- 临界区域问题【2】
- 线程同步工具类——CyclicBarrier