首页 > 编程语言 > 详细

线程同步

时间:2017-03-09 18:07:06      阅读:130      评论:0      收藏:0      [点我收藏+]

线程最大的特点就是资源共享,然而资源共享中的同步问题是线程编程的难题。

三种方法:

1、互斥锁

2、条件变量

3、异步信号

初始化一个锁

int pthread_mutex_init(pthread_mutex_t *restrict mutex,  const pthread_mutexattr_t *restrict attr);

注销一个互斥锁

int pthread_mutex_destroy(pthread_mutex_t *mutex);

加锁,如果不成功,阻塞等待

pthread_mutex_lock(pthread_mutex_t *mutex);

解锁

int pthread_mutex_unlock(pthread_mutex_t *mutex);

测试加锁,如果不成功则立即返回

int pthread_mutex_trylock(pthread_mutex_t *mutex);

---------------------------------------------------------------------------------------------------

使用互斥锁之前必须初始化,有两种方法可以初始化

1、调用函数pthread_mutex_init,可以设置锁的属性(普通锁,嵌套锁,检错锁,适应锁)

2、静态赋值法:将宏结构常量复制给互斥锁

pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

 

线程同步

原文:http://www.cnblogs.com/zhangxuan/p/6526745.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!