完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
7个回答
|
|
LABVIEW 核心课程2里有关于生产者消费者的详细介绍,用变量会出现竞争的问题,从而导致数据丢包,生产消费者不会出现这种问题,另外生产消费只是众多状态机的一种,平常使用的是事件驱动的队列消息处理器。
最佳答案
|
|
|
|
我是这么理解的
其实生产者消费者模式和状态机是两个东西 但是当生产的和消费的是状态机里面的状态的时候,二者就结合成了基于生产者消费者模式的状态机 控制一个循环的开始可以把循环结构放在条件结构里面执行 |
|
|
|
问题一:
说生产消费者模式是状态机,确切来说是生产和消费“产品”的过程是个状态机。 比如你生产一个橘子,它从1个“种子”到“橘子”,再从“橘子”被“吃掉”,前句引号就是一系列状态。每个状态都伴随一些属性以及一些可操作性,比如“种子”是不可“吃”的但是可以“种”,橘子可以“吃”但不能再种,“吃掉”之后就不能“再吃”也不能“再种”等等。而单一的变量则无法表示这些状态,而且会产生1个橘子“被双吃”的问题等等。如果你使用1个结构体作为变量,同时也包含了这些状态,但是这依旧无法解决“多生产者”和“多消费者”的情况,即1个橘子被生产后,就必须立即被消费,否则无法继续生产,而生产消费者模式中使用队列解决了该问题。 问题二: 你说的“控制循环启停”一般指的就是控制任务(或进程或线程)的启停。 控制启动:根据系统和平台的不同,使用其提供的API,比如startTask、fork、pthread_create等等。 控制停止:使用如下格式的任务循环,通过设置停止条件来break循环 while { if(停止条件) { break } ... } 希望对你有所帮助。 |
|
|
|
Qyy_19941203 发表于 2018-7-30 08:54 那你如何停止条件结构里的循环呢 |
|
|
|
但是有个问题 消息 是一个瞬间量 怎么把它转换成个状态量(能持续某段时间那样) 所以我感觉这个不能称为状态机
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
271 浏览 0 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1308 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1243 浏览 3 评论
1528 浏览 2 评论
1300 浏览 0 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 10:04 , Processed in 0.683487 second(s), Total 87, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号