首页 > 其他分享 >【LabVIEW学习篇 - 24】:生产者/消费者设计模式

【LabVIEW学习篇 - 24】:生产者/消费者设计模式

时间:2024-09-11 08:58:47浏览次数:10  
标签:24 消费者 处理 生产者 LabVIEW 任务 循环 设计模式

文章目录

生产者/消费者设计模式

生产者/消费者是多线程编程中最基本的一种模式,使用非常普遍。从软件角度看,生产者就是数据的提供方,而消费者就是数据的消费处理方,二者之间存在一个数据缓存区。

  1. 在新建中可创建生产者 / 消费者设计模式(事件)
    在这里插入图片描述
  2. 如下图所示,第一个while循环为生产者循环,用来响应界面上的用户事件,从而产生需要处理的任务消息(不处理具体的任务),接着把要处理的任务通过消息的形式记录下来,即元素如队列(生产),第二个while循环为消费者循环,通过元素出队列,拿到相关的任务消息并进行处理(消费)。
    在这里插入图片描述
  3. 演示:在消费者循环中对任务消息进行弹出单按钮对话框的处理。
    在这里插入图片描述
    在这里插入图片描述

案例:控制LED等亮灭

  1. 如下图所示,为程序框图和前面板的设计,其原理是通过按钮触发事件,当按下Open按钮时,在生产者循环中将LED ON任务消息入队列,在消费者循环中获取任务消息内容,通过条件结构进入对应的分支,进行处理,即灯亮。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  2. 运行结果:
    在这里插入图片描述
    在这里插入图片描述

标签:24,消费者,处理,生产者,LabVIEW,任务,循环,设计模式
From: https://blog.csdn.net/Oh_Python/article/details/142104358

相关文章

  • 【设计模式】装饰模式
    1.不好的代码(冗杂)//业务操作classStream{public:virtualcharRead(intnumber)=0;virtualvoidSeek(intposition)=0;virtualvoidWrite(chardata)=0;virtual~Stream(){}};//主体类classFileStream:publicStream{public:vir......
  • macOS Sequoia 15 RC (24A335) Boot ISO 发布下载,正式版下周公布
    macOSSequoia15RC(24A335)BootISO原版可引导镜像下载iPhone镜像、Safari浏览器重大更新、备受瞩目的游戏和AppleIntelligence等众多全新功能令Mac使用体验再升级请访问原文链接:https://sysin.org/blog/macOS-Sequoia-boot-iso/,查看最新版。原创作品,转载请保留出处......
  • hadoop中国电动汽车市场分析与可视化-计算机毕业设计源码40244
    目 录摘要1绪论1.1选题背景与意义1.2研究现状1.3研究内容1.4论文结构与章节安排2 中国电动汽车市场分析与可视化系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析......
  • 学习日历 -2024/9/10
    今天上了第一次视听说课程,讲了一些不认识的词汇,第一节UML面向对象课程.工程实训讲了工程实训接下来要学的内容badapple害群之马hire雇佣rational理性的irrational非理性的threatentodosth坏事可能会发生takeover接管,接手unfounded无根据的hearsay传闻,道......
  • 2016 ACM/ICPC Asia Regional Qingdao Online(SDKD 2024 Summer Training Contest H2)
    A-ICountTwoThree题意给定n,求第一个\(\ge\)n的数k,且k=\(2^a3^b5^c7^d\)。思路考虑到样例很多,直接打表存入set省去数组排序操作,由于n$\le$1e9,所以只需要打到1e9后二分即可。(记得加上快读快写,T得饱饱的......
  • ubuntu24.01 利用samba(SMB)实现不同系统文件共享
    安装samba库sudoaptinstallsamba编辑samba的配置文件sudovim/etc/samba/smb.conf[ShareName]path=/path/to/sharereadonly=nobrowsable=yes其中ShareName表示共享的文件名,path对应共享文件的绝对路径,readonly表示共享文件具有读写权限,browsable表示......
  • 2024/9/10
    在学习Java语言的过程中,我对方法的理解与应用给我带来了许多收获与体会。方法使代码的结构更加清晰和易于维护。通过将重复的代码逻辑封装到方法中,我能够避免冗余,提升代码的可读性。当我需要对某一功能进行修改时,只需调整相应的方法,而无需遍历整个程序。这种封装性让代码的管理变......
  • 2024.8 模拟赛日志
    目录前七天讲课(20240730~20240805)24暑期集训ab班day1(20240806)24暑期集训ab班day2(20240807)24暑期集训ab班day3(20240808)24暑期集训ab班day4(20240809)24暑期集训ab班day5(20240810)24暑期集训ab班day6(20240811)24暑期集训ab班day7(20240812)24暑期集训ab班day8(20240813)24暑期集训ab......
  • 高级java每日一道面试题-2024年9月06日-基础篇-Java中的PO、VO、BO、DO、DAO、DTO、PO
    如果有遗漏,评论区告诉我进行补充面试官:Java中的PO、VO、BO、DO、DAO、DTO、POJO是什么意思?我回答:PO持久化对象(PersistentObject)PO是持久化对象,用于表示数据库中的实体或表的映射通常与数据库表的结构和字段对应PO的属性对应数据库表的字段,可以进行持久化操作(新......
  • 2024basectf[week3]
    1、复读机这题页面是一个之后在网络中可以看到这个网页的处理器是python而且flag中还有类似于{}这样的字眼,而且还是python处理的,所以就想到了ssti果然,出现了waf,所以基本上就是这个思路+-*/.{{}}__:"\这些好像都被过滤了,还有一些关键字也被过滤了,可以在关键......