日期:2014-05-16  浏览次数:20612 次

Linux C进程与多线程入门—(5)使用互斥量进行同步

本文出自http://www.wenbanana.com/?p=446稻草人博客,欢迎访问! 

互斥

简单地理解就是,一个线程进入工作区后,如果有其他线程想要进入工作区,它就会进入等待状态,要等待工作区内的线程结束后才可以进入。


基本函数

(1)  pthread_mutex_init函数

原型:int pthread_mutex_init ( pthread_mutex_t *mutex,  const pthread_mutexattr_t* attr);

描述:设置互斥量的属性

参数:第一个参数:预先声明的pthread_mutex_t对象指针

          第二个参数:互斥锁属性,NULL表示使用默认属性

返回值:成功时返回0, 失败时返回一个错误代码


(2) pthread_mutex_lock函数

原型:int pthread_mutex_lock ( pthread_mutex_t *mutex );

描述:pthread_mutex_lock返回时,互斥锁被锁定,如果这个互斥锁被一个线程锁定和拥有,那么另一个线程要调用这        个函数会进入堵塞状态(即等待状态),直到互斥锁被释放为止。

返回值:成功时返回0, 失败时返回一个错误代码


(3) pthread_mutex_unlock函数

原型:int pthread_mutex_unlock ( pthread_mutex_t *mutex );