Disruptor LMAX学习
http://lmax-exchange.github.io/disruptor/
http://bruce008.iteye.com/blog/1408075
http://code.google.com/p/disruptor/wiki/CodeExampleDisruptor2x
http://www.symphonious.net/2011/07/11/lmax-disruptor-high-performance-low-latency-and-simple-too/
http://huangyunbin.iteye.com/category/287815 --系列文章
http://ifeve.com/dissecting-disruptor-whats-so-special/
生成者和Disruptor关联起来.
生成者是要首先占位置的,这个位置是通过ringBuffer的next实现的.
生成者ok之后是通过ringBuffer的publish标志那个位置对于消费者可用的.
而ringBuffer的产生就是由Disruptor的start生成的.
消费者和Disruptor关联起来.
首先消费者必须告诉Disruptor如何处理生产者留下了来的任务.说白了就是定义个有onEvent方法的EventHandler类.Disruptor通过handleEventsWith方法来接受EventHandler类.
在Disruptor中sequencer是生产者,consumer是消费者.表示位置信息的类是Sequence
这个时候生成者和消费者看上去 是没有关系的,但是他们都和Disruptor有关系.来看看Disruptor是如何做桥梁的吧.
生成者和消费者要的都只是对方的位置信息.
生成者获取消费者的位置信息
消费者的信息都会写到Disruptor的consumerRepository中去,[/size]
Disruptor LMAX学习的更多相关文章
- Disruptor系列(一)— disruptor介绍
本文翻译自Disruptor在github上的wiki文章Introduction,原文可以看这里. 一.前言 作为程序猿大多数都有对技术的执着,想在这个方面有所提升.对于优秀的事物保持积极学习的心态 ...
- 并发框架Disruptor浅析
1.引言 Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟.D ...
- Disruptor的应用示例——大文件拆分
结合最近Disruptor的学习,和之前一直思考解决的大文件拆分问题,想到是否可以使用Disruptor作为生产者/消费者传递数据的通道呢?借助其高效的传递,理论上应当可以提升性能.此文便是此想法的落 ...
- Disruptor Ringbuffer
系列译文: http://ifeve.com/disruptor/ 当有多个消费者时,(按Disruptor的设计)每个消费者各自控制自己的指针,依次读取每个Slot(也就是每个消费者都会读取到所有的 ...
- cache line 伪共享
https://blog.csdn.net/qq_27680317/article/details/78486220认识CPU Cache CPU Cache概述 随着CPU的频率不断提升,而内存的访 ...
- [翻译]高并发框架 LMAX Disruptor 介绍
原文地址:Concurrency with LMAX Disruptor – An Introduction 译者序 前些天在并发编程网,看到了关于 Disruptor 的介绍.感觉此框架惊为天人,值 ...
- LMAX Disruptor—多生产者多消费者中,消息复制分发的高性能实现
解决的问题 当我们有多个消息的生产者线程,一个消费者线程时,他们之间如何进行高并发.线程安全的协调? 很简单,用一个队列. 当我们有多个消息的生产者线程,多个消费者线程,并且每一条消息需要被所有的消费 ...
- The LMAX disruptor Architecture--转载
原文地址: LMAX is a new retail financial trading platform. As a result it has to process many trades wit ...
- LMAX Disruptor – High Performance, Low Latency and Simple Too 转载
原文地址:http://www.symphonious.net/2011/07/11/lmax-disruptor-high-performance-low-latency-and-simple-to ...
随机推荐
- mysql游标的使用
这是一个游标的使用例子. 但是其中有几点需要注意,就是为什么要加入 declare CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = null;这 ...
- 自然语言交流系统 phxnet团队 创新实训 项目博客 (四)
刚开始做时,一点头绪都没有,整天的上网找资料,各种谷歌百度,各种博客论坛,搜索的关键词也无非是智能自然语言交流.智能机器人.中文问答系统等等等等.而我们的思路也是些零散的,例如我们知道会用到分词,会用 ...
- HashMap的最大容量为什么是2的30次方?
今天看HashMap的底层实现,发现HashMap的最大容量规定为: // 最大容量(必须是2的幂且小于2的30次方,传入容量过大将被这个值替换) static final int MAXIMUM_C ...
- Apple iOS MDM service 简介
Apple iOS MDM service 簡介 藉由MDM服務,企業可以用來控管配發給員工的iOS Device.可以採用Apple官方推出的工具,也可以採用第三方開發的服務. MDM server ...
- Linux下硬链接与软链接
linux下的链接文件,尤其是软链接使用非常的频繁: 链分为硬链接(hard link)与软链接(symbolic link) 两种:关键在于inode: 硬链接: 当系统需要读取一个文件时,就会去读 ...
- Linux中的环境变量PATH
一.介绍 在讲环境变量之前,先介绍一下命令which,它用于查找某个命令的绝对路径,示例如下: 在上面的示例中,用which查到rm命令的绝对路径为/usr/bin/rm. 那么问题来了:为什么我们使 ...
- CentOS7使用firewalld打开关闭防火墙与端口[转]
转自:http://www.cnblogs.com/moxiaoan/p/5683743.html1.firewalld的基本使用启动: systemctl start firewalld查看状态: ...
- Linux及Windows系统配置JDK环境变量
1.Linux系统配置方法 记住,要下载JDK-8u121-linux-x64.tar.gz,而不是JRE-8u121-linux-x64.tar.gz,JDK中含很多开发者实用工具,比如javac. ...
- QStandardItemModel角色控制及QTreeView添加不同的右键菜单
http://blog.csdn.net/czyt1988/article/details/26018513
- vncviewer 通过ipv6连接
vncserver 填为: [ipv6-address]:port 即可,例如 [:da8::81f:f292:1cff:fe07:da3c]: