![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
disruptor
小淼同学
这个作者很懒,什么都没留下…
展开
-
disruptor第一弹(初见)
前言:看了disruptor有一段时间了,偶尔在一篇文章里看到一个简约版的disruptor,然后又拾起曾经的disruptor源码看起来。因为每次看,你的感觉可能是不一样的。 Disruptor是什么? Disruptor是一个高性能的异步处理框架,或者可以认为是线程间通信的高效低延时的内存消息组件,它最大特点是高性能,其LMAX架构可以获得每秒6百万订单,用1微秒的延迟获得吞吐量为10...原创 2019-09-20 10:34:15 · 146 阅读 · 0 评论 -
disruptor第二弹(建基)
前言:大概认识了disruptor之后,我们来实现一个小型的disruptor。然后从这个小型的disruptor进行扩展。 使用网上的一个突破 head:代表我们要读的位置 tail:代表我们写的位置 bufferSize:代表一圈的大小 数据为空的条件 :head=tail 一个buffer是否满:head=tail%bufferSize+1(说明我tail已经跑了一圈,...原创 2019-09-20 17:53:43 · 111 阅读 · 0 评论 -
disruptor第三弹(手撕第一章)
前言:基于自己对disruptor的理解,实现一个简单的disruptor。上一篇文章是写了一个demo,现在完善他的功能 package com.wm; import java.util.ArrayList; import java.util.List; /** * @Date: 2019-09-23 14:59 * @Description: */ public class ...原创 2019-09-23 16:13:10 · 99 阅读 · 0 评论 -
disruptor第三弹(手撕第二章)
前言:之前已经说了要把对象属性值进行赋值,而不是把对象直接赋值 所以这里需要一个工厂来完成这样的事情 public interface EventTranslatorOneArg<T, A> { void translateTo(T event, long sequence, A arg0); } public class StudentEventTrans...原创 2019-09-23 16:37:16 · 95 阅读 · 0 评论 -
disruptor第三弹(手撕第三章)
前言:这一章东西,可能突然有点多,我还特意少些了一点,免得东西太多,大家混乱了。本来很多东西我可以把源码那里搬过来,但我想想,这样就缺少了手撕的感觉。有可能我没搬过来,读者再去看源码就会发现原来,那样写会更好。多一点思考,比什么都重要,虽然是手撕,但我也希望读者是带着思考去想的。而且我这些手撕是基于单线程的。单的手撕完之后,我们再继续增加一些难度,多线程,然后基于安全考虑。 前面说了,...原创 2019-09-23 20:31:28 · 140 阅读 · 0 评论 -
disruptor第三弹(手撕第四章)
前言:之前说了,先按照上一章结尾所说去实现。消费线程里持有生产者的生产指针。 上代码: package com.wm; import com.wm.factory.EventFactory; import com.wm.factory.EventHandler; import com.wm.factory.EventTranslatorOneArg; import com.wm.ma...原创 2019-09-23 20:48:53 · 132 阅读 · 0 评论 -
disruptor第三弹(手撕第五章)
前言:现在我们创建一个拥有消费者和生产者指针的派生类。进行两端的维护 这一章的内容比较多,各位仔细看代码了 public interface WaitStrategy { /** * 消费者的阻塞方法 * @param sequence * @param cursor */ long waitFor(long sequence, S...原创 2019-09-24 17:25:08 · 211 阅读 · 0 评论 -
disruptor第四弹(结丹)
前言:有的东西是懒得写,就想自己看看得了。但回想下,有的东西只有写下来才能加深记忆。送大家一个我画的图 disruptor里面有生产者去生产数据,MultiProducerSequencer 和SingleProducerSequencer。生产之后,因为他也握有WaitStrategy,消费者也握有这个对象,然后生产者就可以notify通知消费者。告诉它不用等待可以去消费...原创 2019-09-24 20:48:42 · 104 阅读 · 0 评论 -
disruptor第五弹(横行)
前言:原理讲了那么多,现在我们来实现下 package com.lmax.disruptor.test; import com.lmax.disruptor.*; import com.lmax.disruptor.dsl.Disruptor; import com.lmax.disruptor.dsl.ProducerType; import java.util.concurrent...原创 2019-09-25 11:30:23 · 155 阅读 · 0 评论