| 临界区 |
| 临界区是一种最简单的同步对象,它只可以在同一进程内部使用。它的作用是保证只有一个线程可以申请到该对象 | |
| void InitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection ); | 产生临界区 |
| void DeleteCriticalSection(LPCRITICAL_SECTION lpCriticalSection ); | 删除临界区 |
| void EnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection ); | 进入临界区,相当于申请加锁,如果该临界区正被其他线程使用则该函数会等待到其他线程释放 |
| bool TryEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection ); | 进入临界区,相当于申请加锁,和EnterCriticalSection不同如果该临界区正被其他线程使用则该函数会立即返回FALSE,而不会等待 |
| VOID LeaveCriticalSection(LPCRITICAL_SECTION lpCriticalSection ); | 退出临界区,相当于申请解锁 |
下面的示范代码演示了如何使用临界区来进行数据同步处理:
//全局变量
int iCounter=0;
CRITICAL_SECTION criCounter;
DWORD threadA(voi
Windows 下线程同步:WaitForSingleObject 互斥量与信号灯

本文详细介绍了如何使用 Windows API 中的 WaitForSingleObject 函数配合互斥量(Mutex)、信号灯(Semaphore)进行线程同步,包括创建、打开、使用和关闭这些同步对象的示例代码。通过示例展示了临界区、互斥量和信号灯在数据同步中的应用,并提到了事件(Event)和线程等待的使用。
最低0.47元/天 解锁文章
3万+

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



