通俗易懂说-多线程同步(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. 例子

补充中……

猜你喜欢

转载自blog.csdn.net/lqy971966/article/details/89220180