Linux复习: semaphore.h信号量和生产者消费者

点击查看demo代码
demo运行结果如图
在这里插入图片描述

借用网上的一段话

在线程世界里,生产者就是生产数据的线程,消费者就是消费数据的线程。在多线程开发当中,如果生产者处理速度很快,而消费者处理速度很慢,那么生产者就必须等待消费者处理完,才能继续生产数据。同样的道理,如果消费者的处理能力大于生产者,那么消费者就必须等待生产者。为了解决这种生产消费能力不均衡的问题,所以便有了生产者和消费者模式。

可以对数组取模的形式完成循环队列,然后遵循先进先出,在这个“循环队列”里, 使用PV操作来实现消费者和生产者之间的同步。

信号量操作和进程间通信类似,不同是进程间通信在内核中完成,这个是在共享区。

线程在信号量不为0的情况下则可以获取到信号,进行操作,每次操作完则进行信号减1,直到为0的时候才会处于阻塞。
笔记:关键函数,模拟PV操作

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值