设计模式——生产消费者模式

2023-05-16

设计模式——生产消费者模式

生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。

像图片下载加载的模型就可以参考这个模型。

UML图:


消费者和生产者同时对仓库(即这里的队列)里的货物进行操作,这里需要注意的是线程的控制和数据的线程安全问题。消费者和生产者都和仓库有着关联,但不一定是聚合关系,只是消费者和生产者持有仓库类。

代码:

仓库


消费者:

生产者:

在main中的调用:

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设计模式——生产消费者模式 的相关文章

随机推荐

  • C语言除法运算符“/”和求余运算符“%”

    看似两个很简单的运算符 xff0c 却也真要掌握用好它也不容易 xff0c 本文作为关于此类运算符的各方面的问题的汇总 xff0c 希望对你我都有一些帮助 除法运算符 二元运算符 xff0c 具有左结合性 参与运算的量均为整型时 xff0c
  • 生成二维码之后,给二维码 上方添加文字(二)

    生完二维码之后 获取因为需求 我们需要 给二位吗上方添加 一些文字之类的提示信息 如果 座位号什么的 int fontStyle 61 1 字体风格 int font 61 24 字体大小 用来存放带有logo 43 文字的二维码图片 St
  • 冒泡排序

    include lt stdio h gt define LENGTH 8 void main int tmp number LENGTH 61 95 45 15 78 84 51 24 12 for i 61 0 i lt LENGTH
  • 金山词霸C++笔试(北邮11月23号)

    金山词霸笔试题 xff08 北邮11月23号 xff09 xff08 一 xff09 以下输出什么 xff1f char ptr 61 34 hello world 34 cout lt lt ptr h ptr指向字符串的首地址 xff0
  • 关于计算机研究和写作的链接收集

    研究相关的资源 What is Research in Computer Science 计算科学的研究是什么 xff1f 翻译 Basic Research Skills in Computer Science 计算科学的基本研究方法 R
  • 环境问题-无外接显示屏(虚拟显示屏)远程控制Ubuntu

    参考 更新 xff1a 后来向日葵推出SSH远程连接 xff0c 一个月挺便宜的 使用Ubuntu内置的vino VNC提供远程桌面访问 安装vino xff1a sudo apt install vino 配置屏幕共享 配置Ubuntu在
  • spring-boot的三种启动方式

    有段时间没有写博客了 xff0c 也在努力的从传统单机开发向分布式系统过度 xff0c 所以再次做一些笔记 xff0c 以方便日后查看 直接进入正题吧 xff0c 今天记录spring boot项目的三种启动方式 spring boot的启
  • 程序员做一辈子?

    首先 xff0c 程序员真有必要干一辈子吗 xff1f 如果你是个搬砖的 xff0c 你会考虑一辈子搬砖吗 xff1f 你肯定会想着过几年挣钱了 xff0c 买个车跑运输 xff0c 或者自己做工头 对程序员来说 xff0c 真心没有必要干
  • linux 远程桌面

    文章目录 linux 远程桌面服务端tigervnc设置VNC设置开机自启VNC设置开机自启修改防火墙配置 客户端使用MobaXterm连接 linux 远程桌面 使用tigervnc实现远程桌面 服务端 tigervnc设置 1 安装ti
  • vxWorks学习笔记

    vxWorks学习笔记 1 xff0e VxWorks开发方式 xff1a 交叉开发 xff0c 即将开发分为主机 xff08 host xff09 和目标机 xff08 target xff09 两部分 类似于dos下C语言程序的开发 合
  • android:stateNotNeeded="true"的作用

    这个属性默认情况为false xff0c 若设为true xff0c 则当Activity重新启动时不会调用onSaveInstanceState xff08 xff09 方法 xff0c 同样 xff0c onCreate xff08 x
  • 三种文件分配方式的区别

    文件分配方式分为三种 xff1a 连续分配 链接分配 索引分配 其中链接分配又分为隐式链接分配和显式链接分配 xff1b 索引分配又分为单级索引分配 两级 xff08 多级 xff09 索引分配 xff0c 混合索引分配 这里要说的是显式链
  • java 读取文件的几种方式和通过url获取文件

    public class ReadFromFile 以字节为单位读取文件 xff0c 常用于读二进制文件 xff0c 如图片 声音 影像等文件 public static void readFileByBytes String fileNa
  • C语言常见英文词汇表

    前言 今天整理资料的时候发现了大一的好玩的资料 xff0c 就放出来吧 xff01 词汇表 int integer 整性 xff08 数 xff09 auto automatic 自动的 float float 浮点 xff08 数 xff
  • WIFI安全测试之WPS(PIN)加密暴力破解

    前言 无线AP的接入验证有很多种方式 xff0c 家用无线路由器的验证方式包括OPEN WEP WPA WPA2 xff0c WPS的出现降低了接入验证的复杂度 xff0c 但是这种方式却隐含带来许多问题 同时由于很早就入手了第一批WIFI
  • Arduino+蜂鸣器制作有趣的小音乐

    Arduino相关姿势 Arduino是一个开源的硬件平台 xff0c 包括开发套组 xff08 开发板和相关的模块以及连线 xff09 和IDE 开发语言基于C 核心是一块8位ATmega328的处理器 xff0c 这块处理器是AVR单片
  • 计算机图形学笔记

    前言 图形学还是相对比较重要的课程 xff0c 趁着刚刚学完简要记录一下 基本内容 基本几何元素及其表示 xff0c 点 线 面 环以及三维形体 一般的 xff0c 我们使用参数方程来表示一个几何元素 参数方程中未知数的个数为元素的维数 三
  • 深入理解Java中的String

    深入理解Java中的String 本篇转载自博客园 xff0c 原作者平凡希 xff0c 特此说明
  • 反爬虫

    反爬虫
  • 设计模式——生产消费者模式

    设计模式 生产消费者模式 生产者消费者问题是线程模型中的经典问题 xff1a 生产者和消费者在同一时间段内共用同一存储空间 xff0c 生产者向空间里生产数据 xff0c 而消费者取走数据 像图片下载加载的模型就可以参考这个模型 UML图