条件变量+互斥锁解决生产者消费者模型
来源:互联网 发布:mac魅可是哪个国家的 编辑:程序博客网 时间:2024/04/26 20:11
代码实现:
int num = 0;
pthread_mutex_t mutex ;
pthread_cond_t condition;
void *producer(void *arg)
{
pthread_mutex_lock(&mutex);
num ++ ;
if(num == 1)
pthread_cond_signal(&condition);
pthread_mutex_unlock(&mutex);
}
void *cusumer(void* arg)
{
phtread_mutex_lock(&mutex);
while(num == 0)
{
pthread_cond_wait(&cond,&mutex);
}
num--;
pthread_mutex_unlock(&mutex);
}
首先,条件变量一定要和互斥锁一起使用,因为防止多个线程同时请求pthread_cond_wait()
pthread_cond_wait()
做了3个操作{
1.释放已经获得的锁.
2.进入休眠.(挂起)
3.等待某个条件成立,苏醒过来
}
linux内核将其做成了一个原子性的操作;
pthread_cond_signal();
当条件成立的时候,唤醒等待的线程;
0 0
- 条件变量+互斥锁解决生产者消费者模型
- 生产者--消费者模型之互斥锁和条件变量
- 互斥锁加条件变量解决生产者消费者问题
- 消费者生产者问题---线程互斥锁+条件变量
- 线程 ,生产者. 消费者 互斥锁,条件变量
- 互斥锁、条件变量:生产者消费者问题
- 线程同步:条件变量实现生产者消费者模型
- c++11多线程 生产者-消费者模型/条件变量condition_variable
- Linux生产者消费者模型--基于线程条件变量
- 互斥量和条件变量实现生产者消费者模型
- Linux多线程消费者和生产者模型实例(互斥锁和条件变量使用)
- 【Linux】线程总结:线程同步 -互斥锁,条件变量,信号量实现多生产者多消费者模型
- 用条件变量和信号量解决生产者和消费者问题
- 用条件变量来解决生产者消费者问题
- posix 条件变量与互斥锁 示例生产者--消费者问题 .
- 【IPC】互斥锁与条件变量及生产者-消费者问题
- Java多线程之生产者消费者问题<二>:使用重入锁、条件变量优雅地解决生产者消费者问题
- python 条件变量 生产者与消费者
- HDU 1267 下沙的沙子有几粒?(递推)
- [LeetCode-9] Palindrome Number(回文数)
- hibernate关系映射
- cocoa Pods的删除
- SOAPUI测试步骤(八)---DataSource teststeps
- 条件变量+互斥锁解决生产者消费者模型
- iOS项目开发实战——弹出提示对话框
- IOS时间与日期类的使用
- Xcode 模拟器后面出现不明文字 解决办法
- 获取map中元素的另一种方式,通过entrySet
- js点击页面隐藏div
- word2010中如何在斜线表格中添加文字
- 【.Net码农】初试T4模板
- SOAPUI测试步骤(九)---DataGen TestStep