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事件处理器都添加了之后执行一次。