首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

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

2013-02-03 
Linux C进程与多线程入门—(5)使用互斥量进行同步本文出自http://www.wenbanana.com/?p446稻草人博客,欢迎

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 );

描述:释放互斥锁

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


(4) pthread_mutex_destroy函数

原型:int pthread_mutex_destroy ( pthread_mutex_t *mutex );

描述:删除互斥锁

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



实例

lock.c文件

描述:这个程序主要可以概括为主线程负责接受输入的字符串,而子线程则负责统计并输出字符数。



参考文献:Linux程序设计



热点排行
Bad Request.