LabVIEWwilliam hill官网
直播中

secondonsite2

2年用户 60经验值
私信 关注
[问答]

数据处理同步的问题

有一个概念性的问题:用队列读取数据和处理。入队列与出队列是不同的两个循环。每循环一次从出队列去一个数据处理。如果出队列的循环快于入队列的循环,必然导致队列缓存读空。我现在就遇到这种问题,从出队列读到的数据序列,前半部分有数据,后半部分都是0了!请问怎样同步缓存的写入与读出?先谢谢!

回帖(11)

a156789156782

2022-3-9 03:36:04
应该是处理方式问题,有入才出,无入就等待状态或者超时,当没有超时,说明接收到的是有效数据,可以进行处理。生产者消费者的例子,只有生产出来才可以消费,而不是无用的消费。
QQ拼音截图未命名.png
举报

百花缭乱

2022-3-9 09:50:18
出队列不要设置超时
举报

RedJ

2022-3-9 11:04:25
出队列循环一般跟入队列循环定时一样吧,不然数据的采样时间可能对不上。如果消费者循环定时快于生产者循环,试试使用局部变量在两个循环之间传递数据,当生产者循环没有生产出数据时,消费者会持续使用上一个生产者循环的数据。
1 举报
  • secondonsite2: 出队列循环与入队列循环不一样。入队列循环一次产生100个数据,出队列循环次数是入队列循环的100倍。使用局部数组也是同样问题,有读空的时候。

古月飞

2022-3-9 15:20:09
队列本身就有一定的控制程序执行速度的能力
举报

更多回帖

发帖
×
20
完善资料,
赚取积分