完整源碼分析:https://cloud.tencent.com/developer/article/1580681
精煉分析:https://www.iteye.com/blog/reb12345reb-2122006
環形緩沖區的特性:
-
當一個數據元素被用掉后,其余數據元素不需要移動其存儲位置。相反,一個非 圓形緩沖區(例如一個普通的隊列)在用掉一個數據元素后,其余數據元素需要向前搬移。
-
換句話說,圓形緩沖區適合實現FIFO先進先出緩沖區,而非圓形緩沖區適合后進先出緩沖區。
-
-
適合於事先明確了緩沖區的最大容量的情形。擴展一個圓形緩沖區的容量,需要搬移其中的數據。因此一個緩沖區如果需要經常調整其容量,用鏈表實現更為合適。