环形缓冲区和队列之间的区别

Ara*_*ram 5 hadoop data-structures hadoop2

环(循环)缓冲区和队列之间有什么区别?两者都支持FIFO所以在什么情况下我应该在队列中使用环形缓冲区为什么?

与Hadoop的相关性

映射阶段使用环形缓冲区来存储中间密钥值对.在队列中进行此选择的原因是什么?

tem*_*def 5

队列是支持操作入队和出列的抽象数据类型.环形缓冲区是队列的一种可能实现,尽管它不是唯一的(例如,您可以使用链表实现队列).换句话说,队列是可以支持FIFO插入的数据结构的通用术语,而环形缓冲区是可用于实现队列的一种可能的数据结构.

希望这可以帮助!


Rav*_*abu 5

RingBuffer是一个数组,用作队列

它将分别保持两个读写位置。当到达数组末尾时,它将从数组开头继续。

在队列上使用RingBuffer。

  1. 环形缓冲区速度很快。
  2. 当您要存储多少数据时,RingBuffer很有用。

有关更多详细信息,请参阅Jakob Jenkov的这篇文章

看看相关的SE问题:

Java-环形缓冲区