类 Util

java.lang.Object
cn.wjybxx.disruptor.Util

public final class Util extends Object
作者:
wjybxx date - 2024/1/16
  • 构造器详细资料

    • Util

      public Util()
  • 方法详细资料

    • isPowerOfTwo

      public static boolean isPowerOfTwo(int x)
      判断一个值是否是2的整次幂
    • nextPowerOfTwo

      public static int nextPowerOfTwo(int num)
      计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身
    • getMinimumSequence

      public static long getMinimumSequence(Sequence[] sequences)
    • getMinimumSequence

      public static long getMinimumSequence(Sequence[] sequences, long minimum)
    • getMinimumSequence

      public static long getMinimumSequence(SequenceBarrier[] barriers)
    • getMinimumSequence

      public static long getMinimumSequence(SequenceBarrier[] barriers, long minimum)
    • addBarriers

      public static void addBarriers(VarHandle varHandle, SequenceBarrier current, SequenceBarrier... barriersToAdd)
      原子方式添加屏障
      参数:
      varHandle - 数组字段自身的handle,不是数组元素的handle
      current - 用于初始化下游屏障
      barriersToAdd - 要追踪的屏障 -- 下游屏障
    • removeBarrier

      public static boolean removeBarrier(VarHandle varHandle, SequenceBarrier current, SequenceBarrier barrier)
      原子方式删除屏障
      参数:
      varHandle - 数组字段自身的handle,不是数组元素的handle
      current - 当前屏障
      barrier - 要删除的屏障
    • tryNext

      public static long tryNext(int n, long timeout, TimeUnit unit, ProducerBarrier barrier, long sleepNanos)
      参数:
      n - 要申请的序号数量
      timeout - 超时时间
      unit - 时间单位
      barrier - 生产者屏障
      sleepNanos - 每次的挂起时间,纳秒
      返回:
      申请成功则返回对应的序号,否则返回-1
    • checkNullElements

      public static void checkNullElements(Object[] array, String desc)
      检查数组里是否存在null,如果元素里存在null则抛出异常