通俗易懂说-多线程同步(2)互斥量
1. 互斥量定义
互斥量用来确保一个线程独占一个资源的访问。
互斥量是一个内核对象。
互斥量与临界区非常相似,并且互斥量可以用于不同进程中的线程互斥访问。
2. 接口(Windows实现)
1. CreateMutex() //创建一个互斥量资源对象
2. WaitForSingleObject()//等待信号到来
3. ReleadseMutex() //释放互斥量资源
原型:
HANDLE CreateMutex(LPSECUTIRY_ATTRIBUTES lpMutexAttributes,//安全控制,一般传入NULL
BOOL bInitialOwner,//拥有者
LPCTSTR pName)//名称
返回值:成功则返回互斥量的句柄,失败返回NULL。
BOOL ReleaseMutex(HANDLE hMutex)
3. 接口(Linux实现)
pthread_mutex_t mutex 创建一个互斥对象
pthread_mutex_init 函数:初始化一个互斥锁;
pthread_mutex_lock 函数:加锁,如果不成功,阻塞等待;
pthread_mutex_unlock 函数:解锁;
pthread_mutex_trylock 函数:测试加锁,如果不成功就立即返回,错误码为EBUSY;
pthread_mutex_destroy 函数:注销一个互斥锁;
4. 例子
补充中……