JDK8高性能队列“Disruptor“

Hello,你好呀,我是大白(●—●)

高性能队列 DISruptor

在这里插入图片描述

传统队列问题:

1、通过加锁保证线程安全,有性能问题
2、ArrayBlockingQueue 存在伪共享问题

Disruptor 高性能的原理

1、引入了一个环形数组结构,数组是不会回收的,意味着不会有频繁的GC
2、元素在进行操作时使用CAS无锁的方式,避免加锁,同时保证线程安全
对于传统队列伪共享问题,缓存行对于数组也是成立的。当CPU在读取环形数组时,会一次性将
多个元素读到一个缓存行去,加快访问速度。
在一个数组里面高速定位:数组的大小定义为2的n次方,数组中有一个指针(Sequence) 是一个volatile变量
在实现的时候避免伪共享问题,在Sequence前后都填充了无意义的数据

大白(●—●)陪你一起进步!
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值