当前位置: 首页 > news >正文

Linux线程同步与互斥应用/生产者消费者模型

一,理论讲解

我们拿工厂,超市和消费者直接的关系来做讲解,首先人去超市买东西的过程就不用多说,但是超市本身是不能生产商品的,他们需要从各个不同的工厂进货商品,然后再给消费者买,以计算机的角度来看的话超市就是一个具有缓存的数据结构,工厂和消费者就是线程:(工厂等于生产者)

当一个生产者往缓冲区写入数据的时候,其他生产者得等他放完数据之后才能再往里面写数据,消费者也一样,当消费者去超市买东西的时候,其他消费者也不能进去买东西,除此之外还有一个问题,当工厂怎么知道缓冲区的容量是否已经满了?消费者怎么知道超市里有没有东西买?其实可以利用同步的特性去解决,当工厂进货时可以提醒消费者消费了j,消费者在买东西的时候如果看到货架空了,可以提醒工厂该进货了

提炼:

1,共享或者临界资源

2,我们要研究生产消费者模型,就得研究多个生产,多个消费的同步互斥关系

3,生产者和生产者:互斥关系

      消费者和消费者:互斥关系

      生产者和消费者:互斥&&同步关系

总结:三种关系,两种角色,一个交易所

二,代码实现

相关文章:

  • Leetcode-1776. Car Fleet II [C++][Java]
  • 第50天:Web开发-JavaEE应用SpringBoot栈ActuatorSwaggerHeapDump提取自动化
  • 翻转--蓝桥
  • 【深入剖析:机器学习、深度学习与人工智能的关系】
  • 【漫话机器学习系列】114.逻辑 Sigmoid 函数
  • 【Kubernets】K8S内部nginx访问Service资源原理说明
  • python爬虫Scapy框架(1)
  • 精灵图又名雪碧图的使用方法
  • idea生成自定义Maven原型(archetype)项目工程模板
  • windows系统本地部署DeepSeek模型
  • 大模型 参数 use_cache 怎么用? 与 KV Cache 是什么关系?
  • Qt 的 Lambda 捕获局部变量导致 UI 更新异常的分析与解决
  • netty18罗汉——布袋罗汉(encoder)
  • 如何在Python用Plot画出一个简单的机器人模型
  • llama-factory || AutoDL平台
  • ASP.NET Core 3.1 修改个别API返回JSON序列化格式
  • MySQL整体架构
  • Docker - 网络
  • 用冒泡排序法模拟qsort函数
  • LabVIEW中三种PSD分析VI的区别与应用
  • 有没有网站教做美食的/品牌营销网站建设
  • 做受视频网站 mcb3dbd/五种常用的网站推广方法
  • c2c代表网站是什么/企业软文代写
  • 网站横幅怎做/可以免费发布广告的平台有哪些
  • 营销最好的方法/北京seo排名方法
  • 奉贤做网站公司/网站seo服务商