针对不同的应用场景,为了尽量提高处理性能,Disruptor提供了SingleProducerSequencer和MultiProducerSequencer两种sequencer,分别对应单生产者模式和多生产者模式。
- SingleProducerSequencer
在单生产者模式中,由于只有一个生产者,所以在获取下一个可用序列号时,不会存在多线程竞争的情况,所以直接用一个long类型变量nextSequence,而没有使用Sequence,提高了处理速度。
nextValue变量定义如下:
abstract class SingleProducerSequencerPad extends AbstractSequencer
{
protected long p1, p2, p3, p4, p5, p6, p7;
SingleProducerSequencerPad(int bufferSize, WaitStrategy waitStrategy)
{
super(bufferSize, waitStrategy);
}
}
abstract class SingleProducerSequencerFields extends SingleProducerSequencerPad
{
SingleProducerSequencerFields(int bufferSize, WaitStrategy waitStrategy)
{
super(bufferSize, waitStrategy);
}
/**
* Set to -