开局之前
之前听过, 好像底层是什么有个轮 具体记不清了
然后是无锁的
无锁 不是只有cas 么?
Disruptor 的性能为什么这么高呢
- 内存分配更加合理,使用 RingBuffer 数据结构,数组元素在初始化时一次性全部创建,提升缓存命中率;对象循环利用,避免频繁 GC。
能够避免伪共享,提升缓存利用率。
每个变量独占一个缓存行、不共享缓存行就可以了
采用无锁算法,避免频繁加锁、解锁的性能消耗。
CAS
支持批量消费 消费者可以无锁方式消费多个消息。
RingBuffer 如何提升性能
RingBuffer底层也是数组
Disruptor 在 RingBuffer 的基础上还做了很多优化
局部性原理 1.空间局部性 指的是程序中的某条指令一旦被执行,不久之后这条指令很可能再次被执行;如果某条数据被访问,不久之后这条数据很可能再次被访问。 2.时间局部性 是指某块内存一旦被访问,不久之后这块内存附近的内存也很可能被访问。