类 RingBuffer<E>

java.lang.Object
cn.wjybxx.disruptor.RingBuffer<E>
所有已实现的接口:
DataProvider<E>

public final class RingBuffer<E> extends Object implements DataProvider<E>
与Disruptor的设计不同,我将RingBuffer类仅仅设计为数据结构。
作者:
wjybxx date - 2024/1/16
  • 构造器概要

    构造器
    构造器
    说明
    RingBuffer(EventFactory<? extends E> eventFactory, int bufferSize)
     
  • 方法概要

    修饰符和类型
    方法
    说明
    consumerGet(long sequence)
    该接口用于优化消费者查询数据
    void
    consumerSet(long sequence, E data)
    该接口用于消费者覆盖数据(通常用于删除数据) 1.当使用无界队列需要即时清理内存时使用。
    get(long sequence)
    根据指定序号获取data 该接口可用于生产者和消费者获取数据,但对于非固定大小的数据结构而言,可能有较长的查询路径。
    int
    获取buffer大小
    producerGet(long sequence)
    该接口用于优化生产者查询数据
    void
    producerSet(long sequence, E data)
    该接口用于生产者填充数据 1.
    用于测试

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造器详细资料

    • RingBuffer

      public RingBuffer(EventFactory<? extends E> eventFactory, int bufferSize)
  • 方法详细资料

    • getBufferSize

      public int getBufferSize()
      获取buffer大小
    • stream

      public Stream<E> stream()
      用于测试
    • get

      public E get(long sequence)
      从接口复制的说明: DataProvider
      根据指定序号获取data 该接口可用于生产者和消费者获取数据,但对于非固定大小的数据结构而言,可能有较长的查询路径。
      指定者:
      get 在接口中 DataProvider<E>
    • producerGet

      public E producerGet(long sequence)
      从接口复制的说明: DataProvider
      该接口用于优化生产者查询数据
      指定者:
      producerGet 在接口中 DataProvider<E>
    • consumerGet

      public E consumerGet(long sequence)
      从接口复制的说明: DataProvider
      该接口用于优化消费者查询数据
      指定者:
      consumerGet 在接口中 DataProvider<E>
    • producerSet

      public void producerSet(long sequence, E data)
      从接口复制的说明: DataProvider
      该接口用于生产者填充数据 1. 当拷贝既有数据成本较高时可替换既有对象 2. set不提供特殊的内存语义,因此只应该生产者调用
      指定者:
      producerSet 在接口中 DataProvider<E>
    • consumerSet

      public void consumerSet(long sequence, E data)
      从接口复制的说明: DataProvider
      该接口用于消费者覆盖数据(通常用于删除数据) 1.当使用无界队列需要即时清理内存时使用。 2.set不提供特殊的内存语义,因此只应该由末尾的消费者调用
      指定者:
      consumerSet 在接口中 DataProvider<E>