Win32的多线程锁主要有四种
临界区:critical_section
互斥:mutex
信号:semophore
事件:event
其中临界区不能跨进程,互斥,信号,事件属于内核对象,都可以跨进程
跟临界区相关的API
VOIDInitializeCriticalSection(LPCRITICAL_SECTION lpCriticalSection ) 创建临界区
VOID DeleteCriticalSection(LPCRITICAL_SECTIONlpCriticalSection ) 删除临界区
进入临界区,有两个函数
VOIDEnterCriticalSection(LPCRITICAL_SECTION lpCriticalSection ) 相当于申请加锁,如果该临界区正被其他线程使用则该函数会等待到其他线程释放
BOOL TryEnterCriticalSection(LPCRITICAL_SECTIONlpCriticalSection )相当于申请加锁,和EnterCriticalSection不同如果该临界区正被其他线程使用则该函数会立即返回 FALSE,而不会等待
VOID LeaveCriticalSection(LPCRITICAL_SECTIONlpCriticalSection ) 退出临界区,相当于申请解锁
写个程序跑一下
#include <iostream>
#include <process.h>
#include <