rotmond 写:
我使用了producer/consumer循环, 生产者每2毫秒采集一个数据,消费者每秒存一个数据,中间数据用flush quene去除,但在运行中发现,开始时不到一秒消费者就存储了一个数据,比如说程序运行到60秒,结果却取了70个数据,但是如果运行超过1800秒之后发现,数据存储开始变慢,运行到大概2200秒时,却只存了1980个左右数据,我不清楚为什么?请教高手指点,马上要毕业了,非常非常着急!!!!
你的采集速度为2MS,记录速度为1S,而且每秒只需要记录一个数据,这种情况下,没有必要使用队列传递所有采集数据,在采集循环中每秒入队一个数据就可以了,由入队的速度来协调出队的速度。
元素出队的循环不需要任何时间控制。
这种情况下,使用通告就足以满足要求,更为合适。