博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
生产者与消费者问题 之锁的顺序
阅读量:7068 次
发布时间:2019-06-28

本文共 582 字,大约阅读时间需要 1 分钟。

1:  /* 生产者方法 */
2:  void *product(){
3:      sem_wait(&empty_sem);
4:      pthread_mutex_lock(&mutex);
5:      /*生产*/
6:     pthread_mutex_unlock(&mutex);
7:     sem_post(&full_sem);
8:  }
9:  /* 消费者方法 */
10:  void *consumer(){
11:     sem_wait(&full_sem);
12:     pthread_mutex_lock(&mutex);
13:     /*消费*/
14:     pthread_mutex_unlock(&mutex);
15:     sem_post(&empty_sem);
16:  }
 

sem_wait()和pthread_mutext_lock是不能交换位置的;

pthread_mutex_unlock()和sem_post()是可以交换位置的,那么

我个人觉得sem_post在pthread_mutext_unlock前,系统开销小点。

转载于:https://www.cnblogs.com/jiejnan/archive/2012/09/26/2703632.html

你可能感兴趣的文章
扫描端口占用情况的python脚本
查看>>
thinkphp3.2中的RBAC
查看>>
MCT Azure 培训上课笔记
查看>>
java wordpress密码加密
查看>>
php5到php7的修改
查看>>
鸟哥私房菜 第2章 如何学习Linux 课后习题
查看>>
c库和嵌入式开发
查看>>
我的友情链接
查看>>
大端与小端
查看>>
.关于oracle latch和lock的一点点
查看>>
Python学习笔记(3)-Python基础
查看>>
汇编指令速查
查看>>
《游戏程序设计模式》 0 - 目录
查看>>
甲状腺超声要点
查看>>
模拟实现getch()
查看>>
mysql5.7.13免安装版超详细安装教程
查看>>
IDE | Go语言IDE,你选择哪款?
查看>>
基于MySQL存储引擎加触发器的应用场景
查看>>
沙龙报名 | 对话AI专家:深度学习平台的设计与思考
查看>>
什么是数据库事务
查看>>