电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10142002-c11-生产者消费者组成与结构

合集下载

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10141803-c01-状态机中的状态转换

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10141803-c01-状态机中的状态转换
5
状态机中 的状态
转换
状态变量切换基本方法
1)默认转换 2)选择转换 3)条件结构转换 4)转换数组转换
状态机中 的状态
转换
6
1)默认转换
状态机中 的状态
转换
7
2)选择转换
状态机中 的状态
转换
8
3)条件结构转换
状态机中 的状态
转换
9
4)转换数组转换
状态机中 的状态
转换
10
谢谢!
11
基于LabVIEW的 物联网应用程序设计
1
状态机
2
目录
1 状态机的基本组成 2 自定义枚举常量 3 状态机中的状态转换
3
状态机
状态机中的状 状态可能往多个状态转换 的情况,在这个时候,我 们需使用LabVIEW提供的 附加逻辑功能来实现下一 个状态的判断。

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131205-c01-下拉列表与枚举

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131205-c01-下拉列表与枚举
基于LabVIEW的 物联网应用程序设计
1
LabVIEW基本数据类型 ——下拉列表与枚举
2
下拉列表与枚举
• 下拉列表与枚举控件 • 下拉列表与枚举控件的区别
3
下拉列表与枚举控件
• 下拉列表用文字或者图片的方式表示数字。 数字可以是整型数,也可以是浮点数;既可 以是有序值,也可以是无序值,由用户自定 义它代表的数值。
下拉列表与枚举型控件区别六 -下拉列表都是同一种数据类型,可以直接相互赋值,而拥有不同条目的枚举 属于不同数据类型,之间不能直接赋值。
6
下拉列表
下拉列表与枚举控件的区别 与枚举
小结
-在程序中表示有限的几种物件、几个状态等含义时,尽量使用枚举控件; -当程序需要表示的是一个数值,应当使用下拉列表; -自定义枚举控件广泛应用于状态机模式。
例程1:下拉列表与枚举.vi 例程2:简易交通灯(状态机).vi
7
谢谢观看!
8
5
下拉列表
下拉列表与枚举控件的区别 与枚举
下拉列表与枚举型控件区别四 - 在条件结构选择器标签中,下拉列表按照每个条目的值判定条件是否满足, 枚举按照每个条目的标签判断条件是否满足;
下拉列表与枚举型控件区别五 -下拉列表通过控件属性设置,在程序运行时,可动态修改每一项的标签,枚 举只能在编辑状态下修改枚举类型每一项的标签。
• 枚举控件只能代表整数,而且是有序的、Biblioteka 动分配的。下拉列表 与枚举
4
下拉列表
下拉列表与枚举控件的区别 与枚举
下拉列表与枚举型控件区别一 -下拉列表属于数值型,枚举控件属于枚举型;
下拉列表与枚举型控件区别二 -下拉列表支持任何浮点实数类型,枚举只支持三种无符号整型;

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10151802-C01 动态改变界面

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10151802-C01 动态改变界面
9
动态改变 界面
改变所在VI的属性
动态改变 界面
• 如需设置本VI的属性,将通用“属性节点”关联的类选择为VI(默认设置 为应用程序)。 通过通用属性节点右键菜单可以显示所有其他类别对象的 属性。在没有任何引用输入时,这个属性节点的属性设置是针对所在VI的 。
• Demo: 修改所在VI标题 (设置所在VI属性.vi)
作业: 打开”设置控件位置属性.vi”,将通过“直接创建”的方式设置“灯 泡”位置控件属性 改为 通过“创建引用”的方式设置“灯泡”位置属性,并 运行。
6
VI服务器
动态改变界面
• 改变控件的属性 • 改变VI的属性 • 加深理解对象引用
*
7
VI的引用
动态改变 界面
• VI作为LabVIEW应用程序的基本单元,具有丰富的属性和方法。 • VI的引用相当于C语言的函数指针,通过VI的引用,可以实现动态改变VI
VI服务器
动态改变界面
• 改变控件的属性 • 改变VI的属性 • 加深理解对象引用
*
14
VI的引用
动态改变 界面
• 在实际的使用中,直接从控件或其他对象生成属性节点的方法有较多的局 限性,更多的是使用“VI服务器引用”、“打开VI引用”或通用属性节点 ,根据输入引用的类型使用相应的属性。
• 这一节,我们再来加深一下对象引用的理解。
动态改变界面
1
VI服务器
动态改变界面
• 改变控件的属性 • 改变VI的属性 • 加深理解对象引用
*
2
改变控件的属性
动态改变 界面
控件不仅可以纪录保存数据,它自身有许多很丰富的特点。在前面板 设计中,经常需要对某些控件进行属性的修改,用于改变前面板对象的外观 和功能,如隐藏控件、闪烁控件、禁用控件等。

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131606-c01-装饰和背景图片

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131606-c01-装饰和背景图片
4
修饰选板
装饰和 背景图片
修饰选板
在编写程序界面时,修饰最常用的用法是用来将一组相关 联的控件包围起来,或把不相关的控件相互隔开。
装饰和 背景图片
5
背景图片
装饰和 背景图片
Ctrl+C、Ctrl+V复制粘贴导入图片到前面板
将图片文件拖曳到前面板,设置“重新排序” ->“移至后 面”
未添加背景图片 6
设置VI前面板8 的背景图片
谢谢!
9
添加背景图片
背景图片
装饰和 背景图片
前面程序中粘贴的图片是矩形,可有时候程序中需要不规则形状的 图片,这需要使用支持透明色的图片格式,比如png、gif格式,把
装饰和 背景图片
需要注意的是,编写程序过程中,界面的尺寸随时可能更改, 而通过粘贴得到的图片尺寸是固定有限的,在设为背景图片时需要 根据界面大小适当调整。而通过VI前面板窗格的“属性”,可以让 整个前面板都被某一背景图片铺满。
基于LabVIEW的 物联网应用程序设计
1
界面设计
装饰和背景图片
2
装饰和背景图片
3
修饰选板
LabVIEW自带了包括线条、方框 、箭头等各种形状的修饰组件,在 控件选板“新式-修饰”中打开,利 用这些修饰图案可对前面板对象进 行组合或分隔,可以使用户界面装 饰和排版更加清晰,并能制造出一 些意想不到的效果。

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131502-c01-簇元素顺序

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131502-c01-簇元素顺序
基于LabVIEW的 物联网应用程序设计
1
簇及簇函数 ——簇元素顺序
2
目录
1
簇的大小
2
簇元素顺序
3
簇与数组的比较
3
簇互独立(不同数据类型的多个元素)
• 自动调整簇外观大小

匹配大小
垂直排列
4
水平排列
簇元素顺序
• 簇的逻辑次序
簇元素顺序与元素控件的位置无关
• 簇元素重新排序
5
簇元素 顺序
簇与数组的比较
簇元素 顺序
• 簇可以包含不同数据类型,数组仅可包含一种数据类型;
• 簇与数组都只能包含输入控件或者显示控件,不能同时包含两种 控件。
6
谢谢关注!
7

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131602-c01-界面设计限制

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131602-c01-界面设计限制
基于LabVIEW的 物联网应用程序设计
1
限制
2
界面设计
限制
• 限制输入数据 • 防止误操作
3
限制
在实际应用过程中,用户往往会进行随机操作,导致误 操作或给程序提供了错误数据,如果软件容错性不好,则 系统可能会崩溃。因此,当出现用户错误输入时,完美的 解决方案应当是从根源上就杜绝操作和错误的输入数据。4 Nhomakorabea限制
限制输入数据
• LabVIEW某些控件自身具有数据的限制功能; • 采用值可选的控件(下拉列表控件、枚举控件、单选框)
5
限制
防止误操作
用户操作程序界面不可能按照软件开发者预 先设想操作,用户的随机操作很可能导致系统出 现错误,因此,一个设计良好的程序界面还应能 够防止用户的误操作。
6
限制
防止误操作
防止误操作最为简单的方法是通过“失效”避免用户误操作。 例1:按钮设置禁用 例2:鼠标设定状态
7
谢谢观看!
学校地址:江苏省常州市鸣新中路2号 邮编:213164 Copyright 2013 WXIT,All Rights Reserved 苏ICP备09025827号
8

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131303-c01-XY图

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131303-c01-XY图
*
5
XY图——XY graph
6
图形显示器
XY图
• XY图的用途 • XY图的组成 • XY图的输入数据类型 • XY图的多曲线显示 • 快速XY图的使用 • XY图中显示背景图片
*
7
XY图
XY图的用途
1. 数据以不规则的间隔出现; 2. 注重显示X变量和Y变量之间的函数关系,绘制两个相互依赖的变量。
参数
启用
X输入 Y输入 重置 错误输入
说明 启用或禁用Express VI。默认为开启或 TRUE。 指定X输入。 指定Y输入。 控制VI内部状态的初始化。默认值为FALSE。 描述该节点运行前发生的错误。
13
显示背景图片
• 显示背景图片XY图.vi
XY图
14
XY图练习
练习
1.选择题:
• 当需要绘制有相互依赖关系的两个变量的曲线时,最好采用( • A.波形图 B.波形图表 C.XY图
基于LabVIEW的 物联网应用程序设计
1
图形显示器
2
目录
CONTENTS
波形图表
1
波形图
2
目录
3
XY图
4
强度图
*
3
XY图——XY graph
4
图形显示器
XY图
• XY图的用途 • XY图的组成 • XY图的输入数据类型 • XY图的多曲线显示 • 快速XY图的使用 • XY图中显示背景图片
8
Y标尺
X标尺 图形 工具 选板
XY图的组成
图例
标尺 图例
游标 图例
XY图
X 滚动条
9
波形图表的显示项
XY图的显示项

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10142105-c01-错误处理机制

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10142105-c01-错误处理机制

2. 可禁用自动错误处理功能
a) 当前VI ( 选择文件»VI属性。在类别下拉菜单中选择执行,取消勾选启用自动错误处理复选框。) b) 新建空白VI ( 选择工具»选项。在类别下拉菜单中选择程序框图,取消勾选在新VI中启用自动错
误处理复选框。) c) VI内部的子VI或函数 (在子VI中创建错误输出显示控件,或连线子VI的错误输出参数至另一子VI
• 也可使用允许调试属性,通过编程禁用调试工具,以及自动错误处理属性, 通过编程禁用自动错误处理。
• 按照下列步骤,禁用新建或空白VI的自动错误处理功能。 1. 选择工具»选项,显示选项对话框。 2. 从类别列表中选择程序框图。 3. 取消勾选在新VI中启用自动错误处理复选框。
11
练习:程序调试
13) 如何关闭VI的调试功能? a. 设置VI为子VI,选择高优先级可自动关闭调试 b. 选择VI属性,在执行子菜单中选择允许调试 c. 在选板上取消选择调试工具 d. 调试功能是LabVIEW环境的内置功能,无法关闭 14) 前面板上的探针可关联至: a. 输入控件 b. 显示控件 c. 图形 d. 以上均不正确
12
调试工具
练习:程序调试
调试工具
15)如错误簇中错误代码为非零值并且状态为FALSE,该情况表示: a. 严重错误 b. 警告 c. 非严重错误 d. 无错误Βιβλιοθήκη 13练习:程序调试
调试工具
16)如VI的错误输入接线端接收到错误,将出现哪种情况? a. 暂停程序并等待用户响应 b. 正常执行 c. 立即显示包含错误信息的弹出窗口 d. 将错误传递至下一个节点,不执行VI中的代码
1. 停止带有错误簇的循环 2. 根据错误状态执行代码
调试工具
8

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131402-c01-数组的运算

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10131402-c01-数组的运算
LabVIEW可以根据输入数据的类型判断相应的运算方法,即 自动实现多态。例如,在LabVIEW中可直接将两个数组相加, LabVIEW会自动根据数组大小、数据类型决定相应的运算方法。
6
数组的运算
对于加减乘除,数组之间的运算满足下面的规则: 相同维度、相同大小的数组运算 将两个数组中索引相同的元素进行运算形成一个新的数组; 相同维度,不同大小的数组运算 将忽略较大数组多出来的部分; 数组与标量的运算 将数组的每个元素都和该数值进行运算; 空数组 相同维度的数组与空数组进行运算,结果为空数组;
基于LabVIEW的 物联网应用程序设计
1
数组及数组函数
2
目录
1 数组的创建 2 数组的运算 3 数组函数使用
3
Байду номын сангаас
数组的运算
4
数组的运算
数组的运算
5
数组的运算
数组 的运算
LabVIEW中有些函数专门针对数组,例如计算数组长度、排 序、计算最大值最小值。也有一些函数,原本用于数值类型、布 尔类型等数据的计算,也可直接用于对相应数据类型的数组进行 运算。
数组的运算-加法.vi
7
数组 的运算
数组的运算
对于比较函数,数组之间运算的规则: 可在右键菜单中选择“比较元素”或“比较集合”
“比较元素”是对两个数组中对应的每一个元 素分别进行对比,比较结果构成一个同长度的布 尔型数组;
“比较集合”则把数组整体作为一个数据,与 另一个数组比较,结果为真或假。
数组的运算-比较.vi
8
数组 的运算
谢谢观看!
学校地址:江苏省常州市鸣新中路2号 邮编:213164 Copyright 2013 WXIT,All Rights Reserved 苏ICP备09025827号

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10141802-c01-自定义枚举常量

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10141802-c01-自定义枚举常量

10Leabharlann 谢谢!11基于LabVIEW的 物联网应用程序设计
1
状态机
2
目录
1 状态机的基本组成 2 自定义枚举常量 3 状态机中的状态转换
3
状态机
自定义枚举常量
4
枚举常量
状态机在构建时有一个技巧, 就是使用枚举型常量来作为状态转 换代码。
相对于其它数据类型来说,枚 举常量表示了两组成对的数据,一 组是字符串,一组是数值,两者一 一对应。整个枚举型数据的值可以 是预定义的多个数据中的任何一个 值。
顺序结构模式 5
自定义枚 举常量
枚举常量
自定义枚 举常量
使用枚举型常量来作为状态转换代码,是因为枚举型数据 和条件结构配合使用时相当方便。
第一,在条件结构的条件判断框中,我们看到的将不是单 纯的数值,而是我们定义好的字符串,这样直观的表现形式 给不同状态的管理带来了方便。
6
枚举常量
第二,在条件结构上通过 右键单击,选择“为每个 值添加分支”,就能够自 动地将条件结构根据枚举 数据进行展开,从而保证 每个状态的完整性。
7
自定义枚 举常量
自定义枚举常量
第三,考虑到以后对状态机修改及维护方 便,通常将枚举常量创建为一个自定义控 件。将该自定义控件作为枚举常量引入状 态机中,当我们需要对状态变量进行修改 的时候,只要修改任意一个枚举常量,其 它的枚举常量都将发生改变,这将大大的 简化了设计时的工作量。
8
自定义枚 举常量
示例演示
自定义枚 举常量
前面板
程序框图
9
总结
自定义枚 举常量
由于引入了枚举常量这一有效的状态变量, 在后期对状态机的维护中会非常轻松,只需要对 已经存在的自定义枚举常量进行相应的修改、添 加、删除等操作,就能方便地完成状态机中所有 状态变量的更新,再对程序框图作必要的修改, 就能高效并准确地完成状态机的维护。

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10141704-c01-无形胜有形顺序结构

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10141704-c01-无形胜有形顺序结构
顺序结构强行中断了LabVIEW固有的数据流程,人为规定了 运行次序,禁止程序并行操作,而且顺序结构不能从指定的某帧开 始执行,只能从第0帧开始直到最后一帧结束,在顺序执行中途不 能停止该执行。所以用户在编程时应尽量不用或少用顺序结构,只 有在必要的时才使用。
5
示例
“无形胜 有形”的
顺序结构
要求在程序中设置一台仪器,从仪器读取一个数据。但在设置 后,需要等待一小段时间设置才生效,仪器才可以开始读数。
基于LabVIEW的 物联网应用程序设计
1
顺序结构
2
目录
1 平铺式顺序结构
2
层叠式顺序结构
3 顺序结构中帧间的数据传递
4 “无形胜有形”的顺序结构
3
ቤተ መጻሕፍቲ ባይዱ序结构
“无形胜有形”的顺序结构
4
顺序结构
“无形胜 有形”的
顺序结构
LabVIEW编程的主要特点是数据流形式,这便于VI按照并行 方式运行,优化了程序的计算性能。

图a 使用顺序结构编写测试程序代码
6
程序改进1
“无形胜 有形”的
顺序结构
图b 缩小顺序结构的使用范围
7
图c 延时子VI
程序改进2
“无形胜 有形”的
顺序结构
图d 使用延时子VI的测试程序代码
程序优化后,通过错误连线来控制程序的执行顺序,使得程序 代码更直观简洁有效,大大增强了程序的可读性。
8
总结
“无形胜 有形”的
顺序结构
在LabVIEW中需要使用顺序结构的地方,我们可 以通过合理布线,利用公共连线,使各个VI之间通过 数据依赖关系替代,实现自然的数据流顺序控制, 从 而达到“无形胜有形”的境界。
9
谢谢!
10

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10160502-c01示波器信息采集系统硬件设计

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10160502-c01示波器信息采集系统硬件设计

8
硬件
驱动安装
设计
完成驱动的安装之后,就可以根据编程需要打开LabVIEW测试程序,在命令输入框,输入编 程手册中的命令,判断设备是否正常连接。
9
硬件
驱动安装
设计
具体的硬件安装过程及测试,请参见附件中“RIGOLUSB编程实例实用说明文档” 及RIGOLUSB 读写VI。
10
谢谢观看!
11
基于LabVIEW的 物联网应用程序设计
1
示波器信息采集系统
2
示波器信息采集系统硬件设计
3
硬件选择
• 1、台电X80H平板电脑
Windows平台,可以安装并运行LabVIEW生成的EXE程序
硬件 设计
4
硬件选择
• 2、RIGOL DS1102E+示波器 • 3、RIGOL DS1102E+示波器USB连接线
用于PC机与示波器进行串口通信,系统调试使用
硬件 设计
5
硬件

硬件选择
设计
• 4、OTG数据线
用于平板电脑与示波器数据交换
6
OTG数据线 USB连接线
硬件
硬件接线图
设计
X80H平板电脑
RIGOL DS1102E+示波器
7
硬件
驱动安装
设计
在使用LabVIEW编程时,首先需要确定仪器使用RIGOLUSB驱动,故编程前需要在PC机PAD 上安装相关驱动。

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10161102-c01-远程温度检测系统硬件设计

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10161102-c01-远程温度检测系统硬件设计
基于LabVIEW的 物联网应用程序设计
1
远程温度检测系统
2
远程温度检测系统 硬件设计

• 设计方案 • 设备选型 • 通道分配 • 电路设计
*
3
据采集设备
装有LabVIEW的计算机
4
传感器选型
远程温度 检测
根据室温检测范围及接线安装便利考虑采用以下传感器: 热敏电阻和集成温度传感器
2. 输入通道分配: AI0 ← LM35集成温度传感器电压采集
AI1 ← NTC热敏电阻电压采集
信号
LM35 供-5V电源
LM35信号电压ULM35+ LM35信号电压ULM35-
NTC信号电压URt+ NTC信号电压URt-
通道
AO0 AI0+ AI0AI1+ AI1-
接线端 31 1 2 1 2
8
t=Ui1*100
电路设计-LM35
远程温度 检测
+5V AI0-
AI0+ =100KΩ AO0
9
电路设计-热敏电阻
热敏电阻分压电路
电阻值和温度变化的关系式为: RT = R0 expB(1/T – 1/T0) RT :在温度 T ( K )时的 NTC 热敏电阻阻值。 R0 :在额定温度 T0 ( K )时的 NTC 热敏电阻阻值。 T :规定温度( K )。 B : NTC 热敏电阻的材料常数,又叫热敏指数。 exp :以自然数 e 为底的指数( e = 2.71828 …)。 T0 = 25℃=25+273.15=298.15K R0 = R(25℃)=10KΩ B= 3850 K T=1/ [ ln (RT/R0) /B + 1/T0 ]

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10151801-C01 VI服务器的基本概念

电子教案《基于LabVIEW的应用程序设计》(李晴 钱声强)ppt KC10151801-C01 VI服务器的基本概念
VI服务器
1
目录
1
VI服务器的基本概念
2
动态改变界面
3
LabVIEW对象的层次关系
4
动态调用VI
5
应用程序引用
2
VI服务器的基本概念
3
VI服务器
VI服务器的基本概念
• 什么是VI服务器 • 调用VI服务器的方式 • 引用的基本概念 • 获得引用的方法
*
4
什么是VI服务器
VI服务器 基本概念
VI服务器是由LabVIEW提供并用以帮助用户通过编程来实现动态控制 VI和LabVIEW环境的一整套函数 。 —— VI服务器的功能
12
谢谢观看!
13
VI服务器好比一个服务器,它提供控制程序属性和方法的各种功能, 采用面向对象编程方法来实现。—— VI服务器的实现方法
• LabVIEW的对象有类似面向对象编程语言的数据接口 :属性和方法 ,属性是指对象的 特征和性质;方法是指对象的行为;
• 这些属性和方法都可以通过属性节点与调用节点来访问。
6
使用VI服务器的三种方式
VI服务器 基本概念
1. LabVIEW编程,也称为 VI Scripting,这是最常用的方式。通过”属 性节点”和”调用节点”在 LabVIEW 程序中利用这些服务。
• 所有对VI对象的修改都可以利用属性节点和调用节点来完成,VI脚本则提供了更丰富的 内容,实际上是拓宽了属性节点和调用节点的应用范围。
• LabVIEW中除了控件作为对象 ,VI、项目、库、甚至应用程序本身都是对象,从而都有 自己的属性和方法。
• 灵活调用属性节点和方法节点来实现程序的动态控制,这就是VI服务器的功能。 • VI服务器是LabVIEW中非常重要的概念,是LabVIEW的核心技术之一。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常州信息职业技术学院
物联网应用程序设计 (虚拟仪器应用技术)
1
常州信息职业技术学院
生产者-消费者循环
“我需要可以同时执行的两个过程,并且 需要保证它们不会互相影响执行速度。”
2
生产者-消费者
生产者消费者组成与结构
• while循环结构 • 队列 • 生产者循环 • 消费者循环
*
4
组成与结构
• .循环结构-while
循环
5ቤተ መጻሕፍቲ ባይዱ
• 队列
– 创建队列 – 元素入队列 – 元素出队列 – 队列销毁
组成与结构
获取队列引用 定义数据名称 初始化队列元素数据类型
队列
元素入队列 添加新元素至队列末尾
元素出队列 删除队列前端的一个 元素并返回该元素
6
释放队列引用 销毁引用队列
组成与结构
• 队列
队列同数据缓冲区类似,是一个先入先出(FIFO)的数据结构
组成与结构
demo
11
谢谢关注!
学校地址:中国江苏常州科教城鸣新中路22号 邮编:213164 Copyright 2013 WXIT,All Rights Reserved 苏ICP备09025827号
12
队列
7
• 生产者循环
产生数据 并将数据放入队列
组成与结构
添加新元素至队列末尾
生产者 循环
8
• 消费者循环
依次从队列中取出数据, 用条件结构处理。
组成与结构
删除队列前端的一个 元素并返回该元素
9
消费者 循环
组成与结构
执行
• 数据流的流向: 生产者 消费者
10
• 程序演示
Demo 队列上溢和下溢
队列中,数据是否入队,取决于是否有出队; 若出队速度大于入队速度,队列中不会有多余数据; 若出队速度小于入队速度,队列中数据才会增加;
当队列中数据达到设定值(如1024个); 要求“进入队列”的线程被动等待,直到队列中有别的线程取出数据,使队列 出现空闲位置,才让新数据入队。
队列具有调节读写速度的能力
相关文档
最新文档