完整源码分析:https://cloud.tencent.com/developer/article/1580681
精炼分析:https://www.iteye.com/blog/reb12345reb-2122006
环形缓冲区的特性:
-
当一个数据元素被用掉后,其余数据元素不需要移动其存储位置。相反,一个非
圆形缓冲区(例如一个普通的队列)在用掉一个数据元素后,其余数据元素需要向前搬移。
-
适合于事先明确了缓冲区的最大容量的情形。扩展一个圆形缓冲区的容量,需要搬移其中的数据。因此一个缓冲区如果需要经常调整其容量,用链表实现更为合适。