- 所有已知实现类:
BlockingWaitStrategy,BusySpinWaitStrategy,SleepingWaitStrategy,TimeoutBlockingWaitStrategy,TimeoutSleepingWaitStrategy,YieldingWaitStrategy
public interface WaitStrategy
消费者等待策略
PS:由于C#只要抛出异常就会导致性能下降(即使我们的异常实现为不捕获堆栈的),为保持代码一致,java端也使用
sequence-1来表示超时。- 作者:
- wjybxx date - 2024/1/15
-
方法概要
修饰符和类型方法说明longwaitFor(long sequence, ProducerBarrier producerBarrier, ConsumerBarrier barrier) 等待给定的序号可用 实现类通过SequenceBarrier.sequence()}和SequenceBarrier.dependentSequence()进行等待。
-
方法详细资料
-
waitFor
long waitFor(long sequence, ProducerBarrier producerBarrier, ConsumerBarrier barrier) throws AlertException, InterruptedException 等待给定的序号可用 实现类通过SequenceBarrier.sequence()}和SequenceBarrier.dependentSequence()进行等待。- 参数:
sequence- 期望消费的序号producerBarrier- 用于条件等待策略依赖策略感知生产者进度barrier- 消费者屏障 - 用于检测终止信号和查询依赖等。- 返回:
- 当前可用的序号,
sequence-1表示等待超时,返回值不可以比sequence -1更小。 - 抛出:
AlertException- if a status change has occurred for the DisruptorInterruptedException- if the thread needs awaking on a condition variable.
-