リングバッファ | Programming Place Plus 用語集

トップページ用語集

名称

解説

バッファの構造の一種で、先頭と末尾が連結され、データを円状(リング状)に蓄えられるようにしたものです。

現実のメモリの上には、円状の領域をつくることはできないので、論理的に円状にあつかう工夫を凝らして実現されます。たとえば、領域自体は配列として直線的に確保し、要素アクセスする際には、配列の要素数による剰余を取って、添字を求める方法があります。

要素数が 10、剰余の演算子を % とすると、

のようになり、指定の位置が 10以上になったところで先頭に戻り、循環することが分かります。


リングバッファは、キュー(待ち行列)を実装する方法としても利用されます。

リングバッファを使ったキューの実装については、アルゴリズムとデータ構造編【データ構造】第6章で解説しています。

リングバッファの具体的な応用例として、動画や音声のストリーミングがあります。リングバッファにデータをダウンロードしつつ、それを追いかけるように手前側のデータから順に再生していくことで、すべてのデータのダウンロードを待たずに再生を始められます。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る