Disruptor深入理解Ringbuffer

        上一篇从log4j2引出了Disruptor,由Log4j2日志框架到Disruptor入门 简单介绍了他的特性,这一篇咱们深入探讨下它的底层原理Ringbuffer。

        在剖析RingBuffer之前,有必要简单介绍几个概念:缓存行、伪共享、内存屏障,上一章讨论了锁对程序运行的影响以及Log框架是如果解决锁带来影响,最终引出Disruptor,因为它是一个开源的无锁并发框架,但即便规避了使用锁,在计算底层还是会出现共享资源访问问题,接下来解释下刚才提出的几个概念。

        缓存行:  CPU加载内存中的数据时并不是指谁就获取谁,多级缓存结构中,CPU会将要处理的数据的相邻数据一并读取到L1级缓存中,他们就是一个缓存行,老机器32k, 目前主流64k,也有128k的,Disputor是对64k缓存CPU做了优化

        

        伪共享:当两个CPU核心读取不同的数据,又恰好在同一个缓存行中,那么就会出现两个CPU加载了同一份数据到L1中&#

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值