com.lmax.disruptor.Sequence
- 通過(guò)順序遞增的序號(hào)來(lái)編號(hào),管理進(jìn)行交換的數(shù)據(jù)(事件);
- 對(duì)數(shù)據(jù)(事件)的處理過(guò)程總是沿著序號(hào)逐個(gè)遞增處理邀窃;
- 一個(gè)Sequence用于跟蹤標(biāo)識(shí)某個(gè)特定的事件處理者(RingBuffer/Producer/Consumer)的處理進(jìn)度氨菇,Producer有自己的Sequence,Consumer也有自己的Sequence响牛,如果Producer和Consumer有多個(gè)玷禽,每個(gè)Producer和Consumer都有自己的Sequence;
- Sequence可以看成是一個(gè)AtomicLong娃善,用于標(biāo)識(shí)進(jìn)度论衍,只不過(guò)其比AtomicLong更強(qiáng)大;
- Sequence還有另外一個(gè)目的是防止不同Sequence之間CPU緩存偽共享(False Sharing)的問(wèn)題聚磺,Sequence胖著呢坯台,會(huì)把緩存行沾滿的,所以不會(huì)有偽共享的問(wèn)題瘫寝;
com.lmax.disruptor.Sequencer
- Sequencer表示一個(gè)對(duì)象蜒蕾,其包含了Sequence;
- Sequencer是Disruptor真正的核心焕阿;
- 此接口有兩個(gè)重要實(shí)現(xiàn)類
- com.lmax.disruptor.SingleProducerSequencer咪啡;
- com.lmax.disruptor.MultiProducerSequencer;
- 主要實(shí)現(xiàn)生產(chǎn)者和消費(fèi)者之間快速暮屡、正確地傳遞數(shù)據(jù)的并發(fā)算法撤摸;
com.lmax.disruptor.SequenceBarrier
- 充當(dāng)了Producer和Consumer之間的平衡的角色,或者說(shuō)定義了Consumer要如何等著褒纲;
- SequenceBarrier還定義了決定Consumer是否還有可處理的事件的邏輯准夷;