java.lang.Object
java.util.concurrent.atomic.AtomicLongArray
- 所有已实现的接口:
Serializable
一个
long 数组,其中的元素可以自动更新。有关原子访问属性的描述,请参阅 VarHandle 规范。
- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法构造方法描述AtomicLongArray(int length) 创建一个给定长度的新 AtomicLongArray,所有元素初始为零。AtomicLongArray(long[] array) 创建一个新的 AtomicLongArray,其长度与给定数组相同,并且所有元素都是从给定数组复制而来的。 -
方法总结
修饰符和类型方法描述final longaccumulateAndGet(int i, long x, LongBinaryOperator accumulatorFunction) 使用给定函数应用于当前值和给定值的结果原子地更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,返回更新后的值。longaddAndGet(int i, long delta) 以原子方式将给定值添加到索引i处的元素,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longcompareAndExchange(int i, long expectedValue, long newValue) 如果元素的当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchange(java.lang.Object...)指定的记忆效应,则以原子方式将索引i处的元素设置为newValue。final longcompareAndExchangeAcquire(int i, long expectedValue, long newValue) 如果元素的当前值称为 witness value、== expectedValue,具有由VarHandle.compareAndExchangeAcquire(java.lang.Object...)指定的记忆效应,则以原子方式将索引i处的元素设置为newValue。final longcompareAndExchangeRelease(int i, long expectedValue, long newValue) 如果元素的当前值(称为 witness value 、== expectedValue)具有由VarHandle.compareAndExchangeRelease(java.lang.Object...)指定的记忆效应,则以原子方式将索引i处的元素设置为newValue。final booleancompareAndSet(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则以原子方式将索引i处的元素设置为newValue,并具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应。final longdecrementAndGet(int i) 以原子方式递减索引i处元素的值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longget(int i) 返回索引i处元素的当前值,具有VarHandle.getVolatile(java.lang.Object...)指定的记忆效应。final longgetAcquire(int i) 返回索引i处元素的当前值,具有VarHandle.getAcquire(java.lang.Object...)指定的记忆效应。final longgetAndAccumulate(int i, long x, LongBinaryOperator accumulatorFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,其结果为将给定函数应用于当前值和给定值,返回先前值。final longgetAndAdd(int i, long delta) 以原子方式将给定值添加到索引i处的元素,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longgetAndDecrement(int i) 以原子方式递减索引i处元素的值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longgetAndIncrement(int i) 以原子方式递增索引i处元素的值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longgetAndSet(int i, long newValue) final longgetAndUpdate(int i, LongUnaryOperator updateFunction) 使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,返回先前的值。final longgetOpaque(int i) 返回索引i处元素的当前值,具有VarHandle.getOpaque(java.lang.Object...)指定的记忆效应。final longgetPlain(int i) 返回索引i处元素的当前值,读取的内存语义就好像变量被声明为非volatile一样。final longincrementAndGet(int i) 以原子方式递增索引i处元素的值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final voidlazySet(int i, long newValue) final intlength()返回数组的长度。final voidset(int i, long newValue) final voidsetOpaque(int i, long newValue) final voidsetPlain(int i, long newValue) 将索引i处的元素设置为newValue,设置的内存语义就好像变量被声明为 non-volatile和 non-final一样。final voidsetRelease(int i, long newValue) toString()返回数组当前值的字符串表示形式。final longupdateAndGet(int i, LongUnaryOperator updateFunction) 使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,返回更新后的值。final booleanweakCompareAndSet(int i, long expectedValue, long newValue) 已弃用。final booleanweakCompareAndSetAcquire(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetAcquire(java.lang.Object...)指定的记忆效应。final booleanweakCompareAndSetPlain(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的记忆效应。final booleanweakCompareAndSetRelease(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能以原子方式将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetRelease(java.lang.Object...)指定的记忆效应。final booleanweakCompareAndSetVolatile(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSet(java.lang.Object...)指定的记忆效应。
-
构造方法详细信息
-
AtomicLongArray
public AtomicLongArray(int length) 创建一个给定长度的新 AtomicLongArray,所有元素初始为零。- 参数:
length- 数组的长度
-
AtomicLongArray
public AtomicLongArray(long[] array) 创建一个新的 AtomicLongArray,其长度与给定数组相同,并且所有元素都是从给定数组复制而来的。- 参数:
array- 要从中复制元素的数组- 抛出:
NullPointerException- 如果数组为空
-
-
方法详情
-
length
public final int length()返回数组的长度。- 返回:
- 数组的长度
-
get
public final long get(int i) 返回索引i处元素的当前值,具有VarHandle.getVolatile(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引- 返回:
- 当前值
-
set
public final void set(int i, long newValue) - 参数:
i- 索引newValue- 新值
-
lazySet
public final void lazySet(int i, long newValue) - 参数:
i- 索引newValue- 新值- 自从:
- 1.6
-
getAndSet
public final long getAndSet(int i, long newValue) - 参数:
i- 索引newValue- 新值- 返回:
- 以前的值
-
compareAndSet
public final boolean compareAndSet(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则以原子方式将索引i处的元素设置为newValue,并具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
true如果成功。错误返回表示实际值不等于预期值。
-
weakCompareAndSet
@Deprecated (since ="9") public final boolean weakCompareAndSet(int i, long expectedValue, long newValue) 已弃用。此方法具有简单的记忆效应,但方法名称暗示易失性记忆效应(请参阅compareAndExchange(int, long, long)和compareAndSet(int, long, long)等方法)。为避免混淆普通或易失性记忆效应,建议改用方法weakCompareAndSetPlain(int, long, long)。如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 参见:
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
getAndIncrement
public final long getAndIncrement(int i) - 参数:
i- 索引- 返回:
- 以前的值
-
getAndDecrement
public final long getAndDecrement(int i) - 参数:
i- 索引- 返回:
- 以前的值
-
getAndAdd
public final long getAndAdd(int i, long delta) 以原子方式将给定值添加到索引i处的元素,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引delta- 要添加的值- 返回:
- 以前的值
-
incrementAndGet
public final long incrementAndGet(int i) - 参数:
i- 索引- 返回:
- 更新值
-
decrementAndGet
public final long decrementAndGet(int i) - 参数:
i- 索引- 返回:
- 更新值
-
addAndGet
public long addAndGet(int i, long delta) 以原子方式将给定值添加到索引i处的元素,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引delta- 要添加的值- 返回:
- 更新值
-
getAndUpdate
使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,返回先前的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。- 参数:
i- 索引updateFunction- 无副作用的函数- 返回:
- 以前的值
- 自从:
- 1.8
-
updateAndGet
使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,返回更新后的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。- 参数:
i- 索引updateFunction- 无副作用的函数- 返回:
- 更新值
- 自从:
- 1.8
-
getAndAccumulate
以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,其结果为将给定函数应用于当前值和给定值,返回先前值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。该函数应用索引i处元素的当前值作为其第一个参数,并将给定的更新作为第二个参数。- 参数:
i- 索引x- 更新值accumulatorFunction- 两个参数的无副作用函数- 返回:
- 以前的值
- 自从:
- 1.8
-
accumulateAndGet
使用给定函数应用于当前值和给定值的结果原子地更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,返回更新后的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。该函数应用索引i处元素的当前值作为其第一个参数,并将给定的更新作为第二个参数。- 参数:
i- 索引x- 更新值accumulatorFunction- 两个参数的无副作用函数- 返回:
- 更新值
- 自从:
- 1.8
-
toString
返回数组当前值的字符串表示形式。 -
getPlain
public final long getPlain(int i) 返回索引i处元素的当前值,读取的内存语义就好像变量被声明为非volatile一样。- 参数:
i- 索引- 返回:
- 值
- 自从:
- 9
-
setPlain
public final void setPlain(int i, long newValue) 将索引i处的元素设置为newValue,设置的内存语义就好像变量被声明为 non-volatile和 non-final一样。- 参数:
i- 索引newValue- 新值- 自从:
- 9
-
getOpaque
public final long getOpaque(int i) 返回索引i处元素的当前值,具有VarHandle.getOpaque(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引- 返回:
- 值
- 自从:
- 9
-
setOpaque
public final void setOpaque(int i, long newValue) - 参数:
i- 索引newValue- 新值- 自从:
- 9
-
getAcquire
public final long getAcquire(int i) 返回索引i处元素的当前值,具有VarHandle.getAcquire(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引- 返回:
- 值
- 自从:
- 9
-
setRelease
public final void setRelease(int i, long newValue) - 参数:
i- 索引newValue- 新值- 自从:
- 9
-
compareAndExchange
public final long compareAndExchange(int i, long expectedValue, long newValue) 如果元素的当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchange(java.lang.Object...)指定的记忆效应,则以原子方式将索引i处的元素设置为newValue。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
- 见证值,如果成功,它将与预期值相同
- 自从:
- 9
-
compareAndExchangeAcquire
public final long compareAndExchangeAcquire(int i, long expectedValue, long newValue) 如果元素的当前值称为 witness value、== expectedValue,具有由VarHandle.compareAndExchangeAcquire(java.lang.Object...)指定的记忆效应,则以原子方式将索引i处的元素设置为newValue。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
- 见证值,如果成功,它将与预期值相同
- 自从:
- 9
-
compareAndExchangeRelease
public final long compareAndExchangeRelease(int i, long expectedValue, long newValue) 如果元素的当前值(称为 witness value 、== expectedValue)具有由VarHandle.compareAndExchangeRelease(java.lang.Object...)指定的记忆效应,则以原子方式将索引i处的元素设置为newValue。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
- 见证值,如果成功,它将与预期值相同
- 自从:
- 9
-
weakCompareAndSetVolatile
public final boolean weakCompareAndSetVolatile(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSet(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能自动将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetAcquire(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(int i, long expectedValue, long newValue) 如果元素的当前值为== expectedValue,则可能以原子方式将索引i处的元素设置为newValue,并具有由VarHandle.weakCompareAndSetRelease(java.lang.Object...)指定的记忆效应。- 参数:
i- 索引expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
compareAndExchange(int, long, long)和compareAndSet(int, long, long)等方法)。