disruptor_harden vol1disruptor_lmax.disruptorr(4)

电脑杂谈  发布时间:2017-02-24 20:15:19  来源:网络整理

代码地址

个人思考下来,它适合一切异步环境,但是对于并发量小的场景不一定需要。在log4j2中,已经使用了disruptor进行日志记录。同样是用异步,选择disruptor会更快。

在一些获取验证码,发短信的场景下,对实时性要求不够,如果收不到,用户可以再次要求重发。

对于一些奖品,卡券的发放,在高峰期,可以只入队,在之后用异步的方式慢慢发放。

对于比较复杂的逻辑可以进行并发操作

disruptor作为一个高并发框架,从CPU层面对整个代码进行优化。具有如下特点

队列使用数组结构,而不是使用传统的链表结构,寻址更快

新生产的对象采用覆盖的方式(不是传统阻塞队列,删除->添加的逻辑),减少GC回收的负担

从CPU层面优化,对Sequencer进行内存分配补齐,消除Java伪共享(cpu缓存行)

多个线程同时访问,由于他们都通过序号器Sequencer访问ringBuffer,通过CAS取代了加锁和同步块,这也是并发编程的一个指导性原则:把同步块最小化到一个变量上。

False Sharing

Getting-Started

Q1:通过Sequencer产生的序列号,一直处于自增状态,是否会爆掉


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34283-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 汉惠帝
      汉惠帝

      项目标准什么都没跟上

    热点图片
    拼命载入中...