disruptor - Concurrent Programming Framework 并发编程框架
2015-11-26 20:08
246 查看
disruptor发布了Java的2.0版本(.Net版本见这里),disruptor是一个高性能的异步处理框架,或者可以认为是最快的消息框架(轻量的JMS),也可以认为是一个观察者模式实现,或者事件-监听模式的实现,直接称disruptor模式。
disruptor最大特点是高性能,其LMAX架构可以获得每秒6百万订单,用1微秒的延迟获得吞吐量为100K+。
disruptor与传统高性能模型是不同的,LMAX团队通过测试发现热门的Actor模型在高并发设计有瓶颈,disruptor的RingBuffer根据多核CPU的高速缓存设计特点进行了优化,让每个CPU运行一个线程,多个CPU就是多线程并发模式了,正如团队所言:我们想出一个更好,更快的线程之间共享数据的方式,不与世界分享将是自私的,不共享知识让我们看上去是死聪明。
传统消息框架使用Queue队列,如JDK LinkedList等数据结构实现,RingBuffer比Linked之类数据结构要快,因为没有锁,是CPU友好型的。另外一个不同的地方是不会在清除RingBuffer中数据,只会覆盖,这样降低了垃圾回收机制启动频率。
相关文章推荐
- thinkphp+datatables+ajax 大量数据服务器端查询
- 【C语言】查找链表的中间节点及倒数第K个节点
- 编程基础知识之开发工具选择
- 学习总结
- java 深度克隆
- Python实战之KNN实现
- spring 集成logbcak日志
- Intelij IDEA注册码生成代码
- 《编程之美》——求数组的子数组的最大值
- 【C语言】单链表的逆置
- matlab 使用SVM 对鸢尾鼠植物2分类
- 有趣的单精度浮点数(float)
- 【C语言】两个有序单链表的合并
- 工具栏CollectionsJAVA128
- matlab学习笔记(十三)---基于对象的操作
- C++学习之模板:模板重载
- 传智播客javase总结 7
- 使用python对url编码解码
- Spring事务传播行为和隔离机制
- JAVA不同层次模拟按键思路分享