当前位置: 代码迷 >> 综合 >> Disruptor 源码解析
  详细解决方案

Disruptor 源码解析

热度:60   发布时间:2024-01-04 10:05:36.0

本文参考自Disruptor 源码解析

查看原文: 原文地址

本文的一些理解基于http://ifeve.com/?x=29&y=10&s=disruptor 一系列文章

RingBuffer

因为一些相关参数都用到了,把这几个步骤一起说明,利于理解

静态模块初始化 + RingBufferFields构造函数

    private static final int BUFFER_PAD;//缓冲器填充paddingprivate static final long REF_ARRAY_BASE;//数组对象头信息 + BUFFER_PAD * 引用指针大小  字节private static final int REF_ELEMENT_SHIFT;//引用指定大小  字节private static final Unsafe UNSAFE = Util.getUnsafe();static{final int scale = UNSAFE.arrayIndexScale(Object[].class);if (4 == scale)//开启指针压缩,引用大小为4字节{REF_ELEMENT_SHIFT = 2;}else if (8 == scal