您现在的位置:首页 --> 查看专题: 内存队列
Disruptor是LMAX公司开源的一个高效的内存无锁队列。这两天看了一下相关的设计文档和博客,下面尝试进行一下总结。 第一部分。引子谈到并发程序设计,有几个概念是避免不了的。 1.锁:锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。用户态的锁虽然避免了这些问题,但是其实它们只是在没有真实的竞争时才有效。下面是一个计数实验中不加锁、使用锁、使用CAS及定义volatile变量之间的性能对比。 2. CAS: CAS的涵义不多介绍了。使用CAS时不像上锁那样需要一次上下文切换,但是也需要处理器锁住它的指令流水线来保证原子性,并且还要加上Memory Barrier来保证其结果可见。
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[314] WordPress插件开发 -- 在插件使用 -
[151] 解决 nginx 反向代理网页首尾出现神秘字 -
[93] IOS安全–浅谈关于IOS加固的几种方法 -
[49] cookie窃取和session劫持 -
[49] 二维码的生成细节和原理 -
[48] Hacker News 排名算法工作原理 -
[48] Linux Used内存到底哪里去了? -
[48] Shell的那些事儿 -
[48] 到底什么是MVC? -
[47] 浏览器的工作原理:新式网络浏览器幕后揭秘
赞助商广告



