Disruptor 1 内部运转流程

本文详细介绍了Disruptor的构造和初始化过程,包括如何设定线程池、等待策略和ringBuffer大小。此外,还讨论了Disruptor启动的方法及其内部的ring buffer机制,用于防止未消费槽位被新内容覆盖。启动前必须添加所有event事件处理器,并且处理器是并行执行的,可以通过特定方式确保顺序消费。
摘要由CSDN通过智能技术生成

1.Disruptor的构造和初始化

可以调用Disruptor的构造函数初始化,可以设定线程池,等待策略,ringBuffer的大小等信息。

注意,在高版本的Disruptor中,带线程池的构造方法已经被打上了Deprecated标记,原文是这样解释的:

使用ThreadFactory来代替Executor的原因是为了能够在无法继续创建线程来执行producer任务的时候能够报告errors。

其实关于这一点个人持保留意见,因为这样封死了传入Executor的可能性,但是Disruptor内部又只有一个BasicExecutor的封装,这个线程池的实现很简单,是否继续添加线程由ThreadFactory实现,这样JDK中一些线程的线程池就没有用武之地了,我们明明可以使用ThreadFactory配合已有的各种各样的BasicExecutor以及一些其他的手段来实现这个报告errors的功能。

2.Disruptor的启动

可以调用Disruptor的start方法来启动。

ring buffer是为了阻止还没有被消费的slot被新的内容覆盖。

start方法只能在所有的event事件处理器都添加了之后执行一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值