
disruptor
varyall
这个作者很懒,什么都没留下…
展开
-
disruptor 笔记
disruptor的优缺点: 没有竞争=没有锁=非常快。所有访问者都记录自己的序号的实现方式,允许多个生产者与多个消费者共享相同的数据结构。在每个对象中都能跟踪序列号(ring buffer,claim Strategy,生产者和消费者),加上神奇的cache line padding,就意味着没有为伪共享和非预期的竞争。 Disruptor 为什么快 1.转载 2017-04-24 16:20:18 · 1091 阅读 · 0 评论 -
Disruptor原理剖析
Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。 第一部分。引子 谈到并发程序设计,有几个概念是避免不了的。 1.锁:锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对转载 2017-12-21 14:58:07 · 1136 阅读 · 0 评论 -
Disruptor-无锁编程-核心原理剖析- Volatile的普遍误解
提到Disruptor,首先映入大家脑海的词就是“无锁“,“快“,本文将试图从底层核心原理上来剖析Disruptor为什么可以“完全无锁“,为什么可以如此快? 关于Disruptor的背景介绍,本文就不多费口舌了。直接引用网上一段常见的描述: Martin Fowler在自己网站上写了一篇LMAX架构的文章,在文章中他介绍了LMAX是一种新型零售金融交易平台,它能够以很低的延迟产生大量交易转载 2017-12-21 15:10:57 · 533 阅读 · 0 评论 -
Disruptor 介绍
并发的复杂性: 在计算机科学中,并发的意思是两个或两个以上的任务同时并行的执行,但是也要通过争抢来接入资源。争抢的资源可能是数据库、文件系统、套接字、甚至或者说内存中的一块区域。 并发的执行代码包括两个方面:互斥性和改变的可见性。互斥性是指线程对资源进行争用状态的改变的管理(这里的争用状态主要是指写的操作要保持互斥性),而改变可见性是指控制何时这种改变对其他线程可见。很转载 2017-12-21 19:09:12 · 1661 阅读 · 0 评论