接口的使用
cn.wjybxx.disruptor.SequenceBarrier
-
cn.wjybxx.disruptor中SequenceBarrier的使用
修饰符和类型类说明classclass多线程消费者屏障class多生产者模型下的序号生成器class基于RingBuffer的序列生成器。class单线程消费者屏障class单生产者序号分配器 (由用户保证不会并发的申请序号)修饰符和类型字段说明protected SequenceBarrier[]MpUnboundedBufferSequencer.gatingBarriers网关屏障,序号生成器必须和这些屏障满足以下约束: cursor-bufferSize 无效输入:'<'= Min(gatingSequence) 即:所有的gatingBarrier让出下一个插槽后,生产者才能获取该插槽。protected SequenceBarrier[]RingBufferSequencer.gatingBarriers网关屏障,序号生成器必须和这些屏障满足以下约束: cursor-bufferSize 无效输入:'<'= Min(gatingSequence) 即:所有的gatingBarrier让出下一个插槽后,生产者才能获取该插槽。类型参数类型为SequenceBarrier的cn.wjybxx.disruptor中的方法修饰符和类型方法说明static <T extends SequenceBarrier>
voidUtil.addBarriers(VarHandle varHandle, T current, SequenceBarrier... barriersToAdd) 原子方式添加屏障static <T extends SequenceBarrier>
booleanUtil.removeBarrier(VarHandle varHandle, T current, SequenceBarrier barrier) 原子方式删除屏障参数类型为SequenceBarrier的cn.wjybxx.disruptor中的方法修饰符和类型方法说明static <T extends SequenceBarrier>
voidUtil.addBarriers(VarHandle varHandle, T current, SequenceBarrier... barriersToAdd) 原子方式添加屏障voidMpUnboundedBufferSequencer.addDependentBarriers(SequenceBarrier... barriersToTrack) voidMultiConsumerBarrier.addDependentBarriers(SequenceBarrier... barriersToTrack) voidRingBufferSequencer.addDependentBarriers(SequenceBarrier... barriersToTrack) voidSequenceBarrier.addDependentBarriers(SequenceBarrier... barriersToTrack) 添加当前屏障需要追踪的屏障。voidSingleConsumerBarrier.addDependentBarriers(SequenceBarrier... barriersToTrack) default voidEventSequencer.addGatingBarriers(SequenceBarrier... gatingBarriers) 添加一个网关屏障 -- 消费链最末端的消费者屏障voidMpUnboundedEventSequencer.addGatingBarriers(SequenceBarrier... gatingBarriers) voidRingBufferEventSequencer.addGatingBarriers(SequenceBarrier... gatingBarriers) default voidSequencer.addGatingBarriers(SequenceBarrier... gatingBarriers) 添加序号生成器需要追踪的网关屏障(新增的末端消费者消费序列/进度), Sequencer(生产者)会持续跟踪它们的进度信息,以协调生产者和消费者之间的速度。static longUtil.getMinimumSequence(SequenceBarrier[] barriers) static longUtil.getMinimumSequence(SequenceBarrier[] barriers, long minimum) default ConsumerBarrierEventSequencer.newMultiConsumerBarrier(int workerCount, SequenceBarrier... barriersToTrack) 创建一个【多消费者】的屏障 -- 使用自定义等待策略default ConsumerBarrierEventSequencer.newMultiConsumerBarrier(int workerCount, WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) 创建一个【多消费者】的屏障 -- 使用自定义等待策略MpUnboundedEventSequencer.newMultiConsumerBarrier(int workerCount, SequenceBarrier... barriersToTrack) MpUnboundedEventSequencer.newMultiConsumerBarrier(int workerCount, WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) RingBufferEventSequencer.newMultiConsumerBarrier(int workerCount, SequenceBarrier... barriersToTrack) RingBufferEventSequencer.newMultiConsumerBarrier(int workerCount, WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) default ConsumerBarrierSequencer.newMultiConsumerBarrier(int workerCount, SequenceBarrier... barriersToTrack) 使用默认的等待策略创建一个【多线程消费者】使用的屏障。default ConsumerBarrierSequencer.newMultiConsumerBarrier(int workerCount, WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) 使用默认的等待策略创建一个【多线程消费者】使用的屏障。default ConsumerBarrierEventSequencer.newSingleConsumerBarrier(SequenceBarrier... barriersToTrack) 创建一个【单消费者】的屏障 -- 使用默认的等待策略default ConsumerBarrierEventSequencer.newSingleConsumerBarrier(WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) 创建一个【单消费者】的屏障 -- 使用自定义等待策略MpUnboundedEventSequencer.newSingleConsumerBarrier(SequenceBarrier... barriersToTrack) MpUnboundedEventSequencer.newSingleConsumerBarrier(WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) RingBufferEventSequencer.newSingleConsumerBarrier(SequenceBarrier... barriersToTrack) RingBufferEventSequencer.newSingleConsumerBarrier(WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) default ConsumerBarrierSequencer.newSingleConsumerBarrier(SequenceBarrier... barriersToTrack) 使用默认的等待策略创建一个【单线程消费者】使用的屏障。default ConsumerBarrierSequencer.newSingleConsumerBarrier(WaitStrategy waitStrategy, SequenceBarrier... barriersToTrack) 使用给定的等待策略创建一个【单线程消费者】使用的屏障。static <T extends SequenceBarrier>
booleanUtil.removeBarrier(VarHandle varHandle, T current, SequenceBarrier barrier) 原子方式删除屏障booleanMpUnboundedBufferSequencer.removeDependentBarrier(SequenceBarrier barrier) booleanMultiConsumerBarrier.removeDependentBarrier(SequenceBarrier barrier) booleanRingBufferSequencer.removeDependentBarrier(SequenceBarrier barrier) booleanSequenceBarrier.removeDependentBarrier(SequenceBarrier barrier) 移除这些屏障,不再跟踪它们的进度信息; 特殊用法:如果移除了所有的消费者,那么生产者便不会被阻塞,也就能ProducerBarrier.next()死循环中醒来!booleanSingleConsumerBarrier.removeDependentBarrier(SequenceBarrier barrier) default booleanEventSequencer.removeGatingBarrier(SequenceBarrier gatingBarrier) 移除一个网关屏障 -- 消费链最末端的消费者屏障booleanMpUnboundedEventSequencer.removeGatingBarrier(SequenceBarrier gatingBarrier) booleanRingBufferEventSequencer.removeGatingBarrier(SequenceBarrier gatingBarrier) default booleanSequencer.removeGatingBarrier(SequenceBarrier gatingBarrier) 移除这些网关屏障,不再跟踪它们的进度信息; 特殊用法:如果移除了所有的消费者,那么生产者便不会被阻塞,就能从ProducerBarrier.next()中退出。参数类型为SequenceBarrier的cn.wjybxx.disruptor中的构造器限定符构造器说明MultiConsumerBarrier(ProducerBarrier producerBarrier, int memberCount, WaitStrategy waitStrategy, SequenceBarrier... dependentBarriers) SingleConsumerBarrier(ProducerBarrier producerBarrier, WaitStrategy waitStrategy, SequenceBarrier... dependentBarriers)