java.lang.Object
cn.wjybxx.disruptor.Util
- 作者:
- wjybxx date - 2024/1/16
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static <T extends SequenceBarrier>
voidaddBarriers(VarHandle varHandle, T current, SequenceBarrier... barriersToAdd) 原子方式添加屏障static voidcheckNullElements(Object[] array, String desc) 检查数组里是否存在null,如果元素里存在null则抛出异常static longgetMinimumSequence(Sequence[] sequences) static longgetMinimumSequence(Sequence[] sequences, long minimum) static longgetMinimumSequence(SequenceBarrier[] barriers) static longgetMinimumSequence(SequenceBarrier[] barriers, long minimum) static booleanisPowerOfTwo(int x) 判断一个值是否是2的整次幂static intnextPowerOfTwo(int num) 计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身static <T extends SequenceBarrier>
booleanremoveBarrier(VarHandle varHandle, T current, SequenceBarrier barrier) 原子方式删除屏障static longtryNext(int n, long timeout, TimeUnit unit, ProducerBarrier barrier, long sleepNanos)
-
构造器详细资料
-
Util
public Util()
-
-
方法详细资料
-
isPowerOfTwo
public static boolean isPowerOfTwo(int x) 判断一个值是否是2的整次幂 -
nextPowerOfTwo
public static int nextPowerOfTwo(int num) 计算num最接近下一个整2次幂;如果自身是2的整次幂,则会返回自身 -
getMinimumSequence
-
getMinimumSequence
-
getMinimumSequence
-
getMinimumSequence
-
addBarriers
public static <T extends SequenceBarrier> void addBarriers(VarHandle varHandle, T current, SequenceBarrier... barriersToAdd) 原子方式添加屏障- 参数:
varHandle- 数组字段自身的handle,不是数组元素的handlecurrent- 用于初始化下游屏障barriersToAdd- 要追踪的屏障 -- 下游屏障
-
removeBarrier
public static <T extends SequenceBarrier> boolean removeBarrier(VarHandle varHandle, T current, SequenceBarrier barrier) 原子方式删除屏障- 参数:
varHandle- 数组字段自身的handle,不是数组元素的handlecurrent- 当前屏障barrier- 要删除的屏障
-
tryNext
public static long tryNext(int n, long timeout, TimeUnit unit, ProducerBarrier barrier, long sleepNanos) - 参数:
n- 要申请的序号数量timeout- 超时时间unit- 时间单位barrier- 生产者屏障sleepNanos- 每次的挂起时间,纳秒- 返回:
- 申请成功则返回对应的序号,否则返回-1
-
checkNullElements
检查数组里是否存在null,如果元素里存在null则抛出异常
-