Disruptor
小狼_百度
百度,web系统,分布式系统,大数据,机器学习,人工智能等爱好者
展开
-
如何使用 Disruptor(三)写入 Ringbuffer
本文的重点是:不要让 Ring 重叠;如何通知消费者;生产者一端的批处理;以及多个生产者如何协同工作。AD:这是 Disruptor 全方位解析(end-to-end view)中缺少的一章。当心,本文非常长。但是为了让你能联系上下文阅读,我还是决定把它们写进一篇博客里。本文的 重点 是:不要让 Ring 重叠;如何通知消费者;生产者一端的批处理;以转载 2014-08-07 15:09:48 · 1175 阅读 · 0 评论 -
如何使用Disruptor(二)从Ringbuffer读取
从上一篇文章中我们都了解了什么是Ring Buffer以及它是如何的特别。但遗憾的是,我还没有讲述如何使用Disruptor向Ring Buffer写数据和从Ring Buffer中读取数据。ConsumerBarrier与消费者这里我要稍微反过来介绍,因为总的来说读取数据这一过程比写数据要容易理解。假设通过一些“魔法”已经把数据写入到Ring Buffer了,怎样从Rin转载 2014-08-07 15:06:26 · 860 阅读 · 0 评论 -
Java 理论与实践: 正确使用 Volatile 变量
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:转载 2014-08-07 17:13:39 · 638 阅读 · 0 评论 -
如何使用Disruptor(一)Ringbuffer的特别
最近,我们开源了LMAX Disruptor, 它是我们的交易系统吞吐量快(LMAX是一个新型的交易平台,号称能够单线程每秒处理数百万的订单)的关键原因。为什么我们要将其开源?我们意识到对高性 能编程领域的一些传统观点,有点不对劲。我们找到了一种更好、更快地在线程间共享数据的方法,如果不公开于业界共享的话,那未免太自私了。同时开源也让我 们觉得看起来更酷。从这个站点,你可以下载到一篇解释什转载 2014-08-07 15:07:45 · 1400 阅读 · 0 评论