Disruptor核心(五) EventProcessor & WorkProcessor

Event

  • 从生产者到消费者过程中所处理的数据单元;
  • 在Disruptor框架中没有类表示Event,因为它完全是由用户定义的,在Disruptor框架中是用泛型表示的;

com.lmax.disruptor.EventProcessor

  • 继承自java.lang.Runnable接口;
  • 主要用于事件的循环,处理Disruptor中的Event,拥有消费者的Sequence;
  • 它有一个实现类是com.lmax.disruptor.BatchEventProcessor,包含了event loop的有效实现,并且将回调一个com.lmax.disruptor.EventHandler接口的实现对象;
  • 是Disruptor中最核心的方法,实现了run()方法,不断的轮询,获取数据对象,把数据对象交给消费者处理,具体怎么交给消费者,利用了消费者的等待策略;
  • 其在run()方法中回调com.lmax.disruptor.EventHandler的实现对象,所有的Consumer都实现了com.lmax.disruptor.EventHandler接口;

com.lmax.disruptor.EventHandler

  • 由用户实现并且代表了Disruptor中的一个消费者的接口,也就是消费者逻辑都要写在其中;

com.lmax.disruptor.WorkProcessor

  • 在多生产者多消费者模式下,确保每个sequence只被一个processor消费,在同一个WorkPool中,确保多个WorkProcessor不会消费同样的sequence;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容