完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
有一个概念性的问题:用队列读取数据和处理。入队列与出队列是不同的两个循环。每循环一次从出队列去一个数据处理。如果出队列的循环快于入队列的循环,必然导致队列缓存读空。我现在就遇到这种问题,从出队列读到的数据序列,前半部分有数据,后半部分都是0了!请问怎样同步缓存的写入与读出?先谢谢!
|
|
相关推荐
11个回答
|
|
应该是处理方式问题,有入才出,无入就等待状态或者超时,当没有超时,说明接收到的是有效数据,可以进行处理。生产者消费者的例子,只有生产出来才可以消费,而不是无用的消费。
最佳答案
|
|
|
|
出队列不要设置超时
|
|
|
|
出队列循环一般跟入队列循环定时一样吧,不然数据的采样时间可能对不上。如果消费者循环定时快于生产者循环,试试使用局部变量在两个循环之间传递数据,当生产者循环没有生产出数据时,消费者会持续使用上一个生产者循环的数据。
|
|
1 条评论
|
|
队列本身就有一定的控制程序执行速度的能力
|
|
|
|
入队列1000毫秒,出队列10ms。相差100倍。但是出队列循环的执行速度依旧是1000ms。见labview范例,自己改一下出入队列时间就行
|
|
|
|
队列,理论上是不会丢失数据的,可以看一下入队列的元素是不是你想要的
|
|
|
|
并且,队列本身就是在“同步”的函数选版里
|
|
|
|
程序问题 ,建议上框图.
|
|
|
|
建议你用数据引用,那么你读的数据就是你最新更新的数据
|
|
|
|
|
|
|
|
队列本身就是同步的,空的时候不执行就好
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
67 浏览 0 评论
1119 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
2161 浏览 2 评论
1183 浏览 2 评论
1569 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-15 06:15 , Processed in 0.927381 second(s), Total 112, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号