
Ringbuffer
wbj0110
这个作者很懒,什么都没留下…
展开
-
LMAX Disruptor——一个高性能、低延迟且简单的框架(转)
Disruptor是一个用于在线程间通信的高效低延时的消息组件,它像个增强的队列,并且它是让LMAX Exchange跑的如此之快的一个关键创新。关于什么是Disruptor、为何它很重要以及它的工作原理方面的信息都呈爆炸性增长 —— 这些文章很适合开始学习Disruptor,还可跟着LMAX BLOG深入学习。这里还有一份更详细的白皮书。 虽然disruptor模式使用起来很简单,但...原创 2014-01-03 09:25:31 · 320 阅读 · 0 评论 -
Disruptor(无锁并发框架)-发布(转)
假如你生活在另外一个星球,我们最近开源了一套高性能的基于消息传递的开源框架。下面我给大家介绍一下如何将消息通过Ring buffer在无锁的情况下进行处理。在深入介绍之前,可以先快速阅读一下Trish发表的文章,该文章介绍了ring buffer和其工作原理。 这篇文章的要点如下:1.ring buffer是由一个大数组组成的。2.所有ring buffer的“指针”(...原创 2014-01-03 09:26:20 · 244 阅读 · 0 评论 -
如何使用 Disruptor(三)写入 Ringbuffer(转)
本文的 重点 是:不要让 Ring 重叠;如何通知消费者;生产者一端的批处理;以及多个生产者如何协同工作。ProducerBarriersDisruptor 代码 给 消费者 提供了一些接口和辅助类,但是没有给写入 Ring Buffer 的 生产者 提供接口。这是因为除了你需要知道生产者之外,没有别人需要访问它。尽管如此,Ring Buffer 还是与消费端一样提供了一个 Prod...原创 2014-01-03 09:27:30 · 145 阅读 · 0 评论 -
如何使用Disruptor(二)如何从Ringbuffer读取(转)
ConsumerBarrier与消费者这里我要稍微反过来介绍,因为总的来说读取数据这一过程比写数据要容易理解。假设通过一些“魔法”已经把数据写入到Ring Buffer了,怎样从Ring Buffer读出这些数据呢?(好,我开始后悔使用Paint/Gimp 了。尽管这是个购买绘图板的好借口,如果我继续写下去的话… UML界的权威们大概也在诅咒我的名字了。)消费者...原创 2014-01-03 09:31:04 · 208 阅读 · 0 评论 -
剖析Disruptor:为什么会这么快?(一)Ringbuffer的特别之处(转)
最近,我们开源了LMAX Disruptor,它是我们的交易系统吞吐量快(LMAX是一个新型的交易平台,号称能够单线程每秒处理数百万的订单)的关键原因。为什么我们要将其开源?我们意识到对高性能编程领域的一些传统观点,有点不对劲。我们找到了一种更好、更快地在线程间共享数据的方法,如果不公开于业界共享的话,那未免太自私了。同时开源也让我们觉得看起来更酷。从这个站点,你可以下载到一篇解释什么是D...原创 2014-01-03 09:31:33 · 534 阅读 · 0 评论