Disruptor 1 内部运转流程
作者:互联网
1.Disruptor的构造和初始化
可以调用Disruptor的构造函数初始化,可以设定线程池,等待策略,ringBuffer的大小等信息。
注意,在高版本的Disruptor中,带线程池的构造方法已经被打上了Deprecated标记,原文是这样解释的:
使用ThreadFactory来代替Executor的原因是为了能够在无法继续创建线程来执行producer任务的时候能够报告errors。
2.Disruptor的启动
可以调用Disruptor的start方法来启动。
ring buffer是为了阻止还没有被消费的slot被新的内容覆盖。
start方法只能在所有的event事件处理器都添加了之后执行一次。
代码里也做了校验,会首先判断这个方法是否有被调用过,如果调用过,直接抛出异常。
所以在start执行之前,需要添加所有的处理器,是通过下面这个方法实现的:
有几点需要注意:
首先这些已经添加的处理器是并行执行的,因为上面start方法中的consumerInfo的start是把该处理器放到线程池中处理的,所以是一个多线程执行的场景(除非这个线程池是same模式)
标签:Disruptor,调用,流程,start,线程,处理器,方法,运转 来源: https://blog.csdn.net/xxcupid/article/details/89139478