Disruptor pattern 干扰屏障是如何工作的?

Disruptor pattern 干扰屏障是如何工作的?,disruptor-pattern,Disruptor Pattern,LMX干扰器的屏障是如何工作的?我确实了解如何将disruptor与DSL结合使用。但是我找不到一个很好的关于屏障或顺序屏障如何工作的参考 e、 我发现了以下链接,但不确定如何使用屏障数据结构。 例如,新的BatchEventProcessor()接受SequenceBarrier。为什么?我怎样才能创造一个 首先-内存屏障是CPU体系结构原语;SequenceBarrier是Disruptor中的一个实现类。我将尝试涵盖这两个方面 内存屏障-允许软件向硬件提供指令,说明在某个点X之前的所有指

LMX干扰器的屏障是如何工作的?我确实了解如何将disruptor与DSL结合使用。但是我找不到一个很好的关于屏障或顺序屏障如何工作的参考

e、 我发现了以下链接,但不确定如何使用屏障数据结构。


例如,新的BatchEventProcessor()接受SequenceBarrier。为什么?我怎样才能创造一个

首先-内存屏障是CPU体系结构原语;SequenceBarrier是Disruptor中的一个实现类。我将尝试涵盖这两个方面

内存屏障-允许软件向硬件提供指令,说明在某个点X之前的所有指令必须在X完成之前完成。这是因为CPU提供无序执行优化。有关更多详细信息,请参阅本文

SequenceBarrier是Disruptor中的一个实现类;一般来说,它是破坏者的一部分,你不需要在破坏者之外使用它。实际上,它在概念上执行与内存屏障类似的功能—它防止使用者在ringbuffer上领先于发布者。
请参阅-。

希望这有帮助,它们实际上在概念上是相关的,但在堆栈的不同层。谢谢Json!!当创建BatchEventProcessor时,它需要一个SequenceBarrier,这迫使我们创建一个SequenceBarrier。这就是我想理解的原因。我是不是应该从CircularBuffer经过newBarrier走这条路。但如果我不想一开始就使用BatchEventProcessor,而是作为第二个或第三个处理程序(例如via then)使用,那么这将不起作用。您是否尝试过使用DSL?检查这里-