本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
disruptor(二) MultiProducerSequencer
在《disruptor(一) 单一生产者和WorkPool消费者源码阅读》介绍了单一生产者
当多个生产者向RingBuffer中写入数据时,创建Disruptor时要修改对应的参数:
Disruptor disruptor = new Disruptor(eventFactory, BUFFER_SIZE, executor, ProducerType.MULTI,
...
disruptor(一) 单一生产者和WorkPool消费者源码阅读
最近项目中有用到disruptor,提供一个类似队列或者数据容器的功能,并发能力很强
概念:
Sequence:就是一个增长序列,类似oracle的增长序列,生产和消费程序都有Sequence,记录生产和消费程序的序列
Sequencer: 多个概念的一个组合,持有Sequence,等待策略等一些引用,生产者引用
SequenceBarrier:直接翻译就是序列屏障,就是Sequ ...
如何使用Disruptor(二)如何从Ringbuffer读取(转)
ConsumerBarrier与消费者
这里我要稍微反过来介绍,因为总的来说读取数据这一过程比写数据要容易理解。假设通过一些“魔法”已经把数据写入到Ring Buffer了,怎样从Ring Buffer读出这些数据呢?
(好,我开始后悔使用Paint/Gimp 了。尽管这是个购买绘图板的好借口,如果我继续写下去的话… UML界的权威们大概也在诅咒我的名字了。)
消费者( ...
如何使用 Disruptor(三)写入 Ringbuffer(转)
本文的 重点 是:不要让 Ring 重叠;如何通知消费者;生产者一端的批处理;以及多个生产者如何协同工作。
ProducerBarriers
Disruptor 代码 给 消费者 提供了一些接口和辅助类,但是没有给写入 Ring Buffer 的 生产者 提供接口。这是因为除了你需要知道生产者之外,没有别人需要访问它。尽管如此,Ring Buffer 还是与消费端一样提供了一个 Produ ...
Disruptor(无锁并发框架)-发布(转)
假如你生活在另外一个星球,我们最近开源了一套高性能的基于消息传递的开源框架。
下面我给大家介绍一下如何将消息通过Ring buffer在无锁的情况下进行处理。
在深入介绍之前,可以先快速阅读一下Trish发表的文章,该文章介绍了ring buffer和其工作原理。
这篇文章的要点如下:
1.ring buffer是由一个大数组组成的。
2.所有ring buffer的“指针”(也 ...
LMAX Disruptor——一个高性能、低延迟且简单的框架(转)
Disruptor是一个用于在线程间通信的高效低延时的消息组件,它像个增强的队列,并且它是让LMAX Exchange跑的如此之快的一个关键创新。关于什么是Disruptor、为何它很重要以及它的工作原理方面的信息都呈爆炸性增长 —— 这些文章很适合开始学习Disruptor,还可跟着LMAX BLOG深入学习。这里还有一份更详细的白皮书。
虽然disruptor模式使用起来很简单,但是 ...
Disruptor 2.0 - 所有的改变
这是 Trisha Gee 发表的 Disruptor 全解析系列博客的后续补充,原文链接是:http://mechanitis.blogspot.com/2011/08/disruptor-20-all-change-please.html
Martin 最近公布了 Disruptor 的 2.0 版本 —— 基本上,2.0 版自我们第一次开源以来有了如此多的改变,是需要把这些改 ...
Disruptor 全解析(7):解密内存屏障(Memory Barrier)
原文地址:http://mechanitis.blogspot.com/2011/08/dissecting-disruptor-why-its-so-fast.html, 作者是 Trisha Gee, LMAX 公司的一位女工程师。
我最近写文章的速度变慢了,是因为我一直在尝试写一篇博客解释内存屏障(Memory Barrier)以及它在 Disruptor 的应用。问题是, ...
Disruptor 全解析(6):为什么它这么快 (二) - 神奇的 cacheline 补齐
原文地址:http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-why-its-so-fast_22.html, 作者是 Trisha Gee, LMAX 公司的一位女工程师。
我们多次提到了 Mechanical Sympathy (机器协同?) 这个短语,事实上它甚至是Martin 的博客 标题。它的含义与理解底层计 ...
Disruptor 全解析(5):为什么它这么快 (一) - Locks Are Bad
原文地址: http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-why-its-so-fast.html,作者是 Trisha Gee, LMAX 公司的一位女工程师。
Martin Fowler 写了一篇非常 ...
Disruptor 全解析(4):依赖关系组装
原文地址:http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-wiring-up.html 作者是 Trisha Gee, LMAX 公司的一位女工程师。
现在我已经讲了 RingBuffer 本身,如何从它 读取 以及如何向它 写入。
从逻辑上来说,下一件要做的事情就是把所有的知识拼接到在一起。
Disruptor 全解析(2):如何从 Ring Buffer 读取?
原文地址:http://mechanitis.blogspot.com/2011/06/dissecting-disruptor-how-do-i-read-from.html 作者是 Trisha Gee, LMAX 公司的一位女工程师。
这是理解 LMAX 开发的 Disruptor 模式 系列博客的下一篇。
从
Disruptor 全解析(3):写入 Ring Buffer
原文地址:http://mechanitis.blogspot.com/2011/07/dissecting-disruptor-writing-to-ring.html 作者是 Trisha Gee, LMAX 公司的一位女工程师。
这是 Disruptor 全方位解析(end-to-end view)中缺少的一章。当心,本文非常长。但是为了让你能连在一起联系上下文的阅读,我还是 ...
Disruptor 全解析(1):Ring Buffer 有什么特别?
原文地址: http://mechanitis.blogspot.com/2011/06/dissecting-disruptor-whats-so-special.html 作者是 Trisha Gee, LMAX 公司的一位女工程师。
最近我们开源了 LMAX Disruptor,它是让我们的交易流程变得如此之快的关键。为什么要开源它?因为我们意识到大家对高性能编程的传统认知 ...