Disruptor简介

一.介绍
Disruptor是java的并发框架,实现了无锁的队列,应用场景是“生产者-消费者”或“发布-订阅”模型的应用场合。
可以拿JDK的BlockQueue来和Disruptor比较,总体上讲差不多,但是Disruptor的实现方式更为巧妙,性能更加的好
主要体现在下面三点:
1.根据消费者的依赖关系图,多播事件给多个消费者
2.为事件提前分配内存
3.可选择无锁
二.重要概念
Disruptor里面有一些比较重要的概念,可以帮助更好理解内部实现的原理
-Ring Buffer:环形缓冲区,也就是Disruptor中的队列,数组实现,元素个数为2的n次方,负责存储更新Disruptor中的事件
-Sequence:用来追踪生产者和消费者
-Sequencer:Disruptor核心,这接口的两个实现多生产者,单生产者实现了所有的并发算法, 用于在生产者和消费者之间快速正确地传递数据
-Sequence Barrier:持有RingBuffer的sequencer,由sequencer生成;用于判断是否有事件可以消费
-Wait Strategy:等待策略决定了消费者如何等待生产者将事件放置到Disruptor中,Disruptor有多种策略,根据不同数量级,不同场景进行选择
-Event:从生产者传递给消费者的数据单位
-EventProcessor:事件处理器,从不同生产者那获取事件供消费者(EventHandler)处理
-EventHandler:消费者,定义消费某个事件的具体逻辑,消费Disruptor里面的事件
-Producer:这个概念在代码层面没有表示,这是调用Disruptor发布事件的用户代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值