disruptor.handleEventsWith(new StringEventHandler(eventCountPrinter));
- 查看handleEventsWith方法的内部:
public final EventHandlerGroup handleEventsWith(final EventHandler<? super T>… handlers)
{
return createEventProcessors(new Sequence[0], handlers);
}
- 展开createEventProcessors方法,如下图,请重点关注创建SequenceBarrier和BatchEventProcessor等操作:
- 展开上图红框四中的updateGatingSequencesForNextInChain方法,如下图,红框中的ringBuffer.addGatingSequences需要重点关注:
- 小结一下,disruptor.handleEventsWith方法涉及到四个重要知识点:
-
创建SequenceBarrier对象,用于接收ringBuffer中的可消费事件
-
创建BatchEventProcess