尝试理解下面(部分)堆栈跟踪。使用spring的project reactor 2.0.4。
我得到了任务调度程序线程,它们应该创建任务并为工作线程分配任务。此时应用程序挂起(工作线程没有记录任何内容,在不同时间采取的threaddumps总是相同的等)。
我可以根据以下行说明环形缓冲区已满:DataTemplate
如果环形缓冲区已满,为什么我的工作线程没有完成任何这些任务? ringbuffer状态会变得腐败吗?
at reactor.jarjar.com.lmax.disruptor.MultiProducerSequencer.next(MultiProducerSequencer.java:136)
答案 0 :(得分:1)
如果你看MultiProducerSequencer.java # 136,我们会看到环形缓冲包装点>门控序列。 Disruptor: Gating Sequence表示这完全取决于发布商是否覆盖尚未处理的事件。正如你所说,为什么我的工作线程没有完成任何这些任务?我认为您需要查看实施onEvent
EventHandler<T>
代码