所有类和接口

说明
表示屏障关联的生产者或消费者收到了特殊信号 - 其作用类似于中断。
阻塞等待策略 - 可以达到较低的cpu开销。
自旋等待策略 特征:极低的延迟,极高的吞吐量,以及极高的CPU占用。
消费者序号屏障 1.
消费者组
数据提供者
RingBuffer使用EventFactory.newInstance()预创建对象预填充共享数据区。
事件处理器 ps:你可以实现自己的事件处理器和事件处理接口,这里的接口仅做参考。
事件生成器 事件生成器是SequencerDataProvider的集成,每一种实现通常都和数据结构绑定。
 
Implementations translate (write) data representations into events claimed from the RingBuffer.
多生产者的无界缓冲区 注意: 1.
 
 
 
 
多线程消费者屏障
多生产者模型下的序号生成器
生产者序号屏障 1.
单生产者和多生产的主要差别在空间分配上(序号分配上)。
与Disruptor的设计不同,我将RingBuffer类仅仅设计为数据结构。
 
 
基于RingBuffer的序列生成器。
序列,用于追踪RingBuffer和EventProcessor的进度,表示生产/消费进度。
序号屏障
序号阻塞器
序号生成器 1.
单线程消费者屏障
单生产者序号分配器 (由用户保证不会并发的申请序号)
睡眠等待策略。
阻塞等待策略 - 可以达到较低的cpu开销。
睡眠等待策略。
 
消费者等待策略 PS:由于C#只要抛出异常就会导致性能下降(即使我们的异常实现为不捕获堆栈的),为保持代码一致,java端也使用sequence-1来表示超时。
该策略在尝试一定次数的自旋等待(空循环)之后使用尝试让出cpu。