这是因为Disruptor将在事件处理程序中进行批处理。如果事件处理程序速度慢或环形缓冲区较小,则批处理大小通常可以是环形缓冲区的大小。Disruptor将仅更新该事件处理程序的已处理序列,直到批处理完成为止。这减少了需要对发布者用来确定空间是否可用的序列变量进行的更新次数。如果需要使空间比默认值更早可用,则可以使用SequenceReportingEventHandler来实现。
public class MyEventHandler implements SequenceReportingEventHandler<Element> { Sequence processedSequence; public void setSequenceCallback(Sequence s) { processedSequence = s; } public void onEvent(Element e, long sequence, boolean endOfBatch) { // Do stuff processedSequence.set(sequence); }}


