并发框架Disruptor使用了一个叫做 RingBuffer(环)的数组结构

它只有指向下一个可用位置的序号,没有只向尾部的序号,是因为RingBuffer不删除Buffer中的数据,当重叠时直接用新数据覆盖。

为什么使用数组而不是链表,

1.数组在内存的存储位置是连续的,链表是不连续的。对数组的访问比对链表的访问快。
从硬件的角度,对CPU缓存来说,能够一次性加载几个相邻位置的数组元素到CPU缓存行。
2.数组一次性分配内存,常驻内存不用回收,链表新增和删除元素都会直接或间接导致内存的分配和回收

 

posted on 2015-03-24 16:36  xuqiyu  阅读(304)  评论(0编辑  收藏  举报