有时候我们为了不丢失数据,往往开辟一个FIFO缓冲队列。其中需要用2个数A和B来分别记录当前数据应该放入的位置和当前应该取出数据的位置。
简单的FIFO队列在存储满时,新来的数据直接丢弃。如果想要丢弃最早接收到的数据,则需要做成环形FIFO。
对于环形的FIFO队列,只要存取的速度相当,处理器能保证缓冲队列中始终有空间去存储新来的数据(如果空间足够,且处理时间允许,可以适当开辟一个大一点的缓冲区域),则环形FIFO不会有问题。但是当处理器处理不过来时,缓冲队列存满后又接收到新的数据,此时保证先入先出的功能不能被破坏,则要特别注意当前应该取出数据的位置。
原文地址:https://www.cnblogs.com/xiaokangkp0602/p/10031627.html