java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicLong
- 所有已实现的接口:
Serializable
可以自动更新的
long 值。有关原子访问属性的描述,请参阅 VarHandle 规范。 AtomicLong 用于原子递增序列号等应用程序,不能用作 Long 的替代品。但是,此类确实扩展了 Number 以允许处理基于数字的类的工具和实用程序进行统一访问。
- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述final longaccumulateAndGet(long x, LongBinaryOperator accumulatorFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值以及将给定函数应用于当前值和给定值的结果,并返回更新后的值。final longaddAndGet(long delta) 以原子方式将给定值添加到当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longcompareAndExchange(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchange(java.lang.Object...)指定的记忆效应,则原子地将值设置为newValue。final longcompareAndExchangeAcquire(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchangeAcquire(java.lang.Object...)指定的记忆效应,则原子地将值设置为newValue。final longcompareAndExchangeRelease(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchangeRelease(java.lang.Object...)指定的记忆效应,则原子地将值设置为newValue。final booleancompareAndSet(long expectedValue, long newValue) 如果当前值为== expectedValue,则以原子方式将值设置为newValue,并具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应。final long以原子方式递减当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。doublefloatfinal longget()返回当前值,具有VarHandle.getVolatile(java.lang.Object...)指定的记忆效应。final long返回当前值,具有VarHandle.getAcquire(java.lang.Object...)指定的记忆效应。final longgetAndAccumulate(long x, LongBinaryOperator accumulatorFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值以及将给定函数应用于当前值和给定值的结果,并返回先前的值。final longgetAndAdd(long delta) 以原子方式将给定值添加到当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final long以原子方式递减当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final long以原子方式递增当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。final longgetAndSet(long newValue) 以原子方式将值设置为newValue并返回旧值,具有VarHandle.getAndSet(java.lang.Object...)指定的记忆效应。final longgetAndUpdate(LongUnaryOperator updateFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值与应用给定函数的结果,返回先前的值。final long返回当前值,具有VarHandle.getOpaque(java.lang.Object...)指定的记忆效应。final longgetPlain()返回当前值,具有读取的内存语义,就好像变量被声明为 non-volatile一样。final long以原子方式递增当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。intintValue()final voidlazySet(long newValue) 将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的记忆效应。longfinal voidset(long newValue) 将值设置为newValue,具有VarHandle.setVolatile(java.lang.Object...)指定的记忆效应。final voidsetOpaque(long newValue) 将值设置为newValue,具有VarHandle.setOpaque(java.lang.Object...)指定的记忆效应。final voidsetPlain(long newValue) 将值设置为newValue,设置的内存语义就好像变量被声明为 non-volatile和 non-final一样。final voidsetRelease(long newValue) 将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的记忆效应。toString()返回当前值的字符串表示形式。final longupdateAndGet(LongUnaryOperator updateFunction) 使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值,返回更新后的值。final booleanweakCompareAndSet(long expectedValue, long newValue) 已弃用。final booleanweakCompareAndSetAcquire(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,具有由VarHandle.weakCompareAndSetAcquire(java.lang.Object...)指定的记忆效应。final booleanweakCompareAndSetPlain(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的记忆效应。final booleanweakCompareAndSetRelease(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSetRelease(java.lang.Object...)指定的记忆效应。final booleanweakCompareAndSetVolatile(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSet(java.lang.Object...)指定的记忆效应。在类 java.lang.Number 中声明的方法
byteValue, shortValue
-
构造方法详细信息
-
AtomicLong
public AtomicLong(long initialValue) 使用给定的初始值创建一个新的 AtomicLong。- 参数:
initialValue- 初始值
-
AtomicLong
public AtomicLong()创建一个初始值为0的新 AtomicLong。
-
-
方法详情
-
get
public final long get()返回当前值,具有VarHandle.getVolatile(java.lang.Object...)指定的记忆效应。- 返回:
- 当前值
-
set
public final void set(long newValue) 将值设置为newValue,具有VarHandle.setVolatile(java.lang.Object...)指定的记忆效应。- 参数:
newValue- 新值
-
lazySet
public final void lazySet(long newValue) 将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的记忆效应。- 参数:
newValue- 新值- 自从:
- 1.6
-
getAndSet
public final long getAndSet(long newValue) 以原子方式将值设置为newValue并返回旧值,具有VarHandle.getAndSet(java.lang.Object...)指定的记忆效应。- 参数:
newValue- 新值- 返回:
- 以前的值
-
compareAndSet
public final boolean compareAndSet(long expectedValue, long newValue) 如果当前值为== expectedValue,则以原子方式将值设置为newValue,并具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
true如果成功。错误返回表示实际值不等于预期值。
-
weakCompareAndSet
已弃用。此方法具有简单的记忆效应,但方法名称暗示易失性记忆效应(请参阅compareAndExchange(long, long)和compareAndSet(long, long)等方法)。为避免混淆普通或易失性记忆效应,建议改用方法weakCompareAndSetPlain(long, long)。如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的记忆效应。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 参见:
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的记忆效应。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
getAndIncrement
public final long getAndIncrement()以原子方式递增当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。相当于
getAndAdd(1)。- 返回:
- 以前的值
-
getAndDecrement
public final long getAndDecrement()以原子方式递减当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。相当于
getAndAdd(-1)。- 返回:
- 以前的值
-
getAndAdd
public final long getAndAdd(long delta) 以原子方式将给定值添加到当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。- 参数:
delta- 要添加的值- 返回:
- 以前的值
-
incrementAndGet
public final long incrementAndGet()以原子方式递增当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。相当于
addAndGet(1)。- 返回:
- 更新值
-
decrementAndGet
public final long decrementAndGet()以原子方式递减当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。相当于
addAndGet(-1)。- 返回:
- 更新值
-
addAndGet
public final long addAndGet(long delta) 以原子方式将给定值添加到当前值,具有VarHandle.getAndAdd(java.lang.Object...)指定的记忆效应。- 参数:
delta- 要添加的值- 返回:
- 更新值
-
getAndUpdate
以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值与应用给定函数的结果,返回先前的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。- 参数:
updateFunction- 无副作用的函数- 返回:
- 以前的值
- 自从:
- 1.8
-
updateAndGet
使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值,返回更新后的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。- 参数:
updateFunction- 无副作用的函数- 返回:
- 更新值
- 自从:
- 1.8
-
getAndAccumulate
以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值以及将给定函数应用于当前值和给定值的结果,并返回先前的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。该函数应用当前值作为其第一个参数,给定的更新作为第二个参数。- 参数:
x- 更新值accumulatorFunction- 两个参数的无副作用函数- 返回:
- 以前的值
- 自从:
- 1.8
-
accumulateAndGet
以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)当前值以及将给定函数应用于当前值和给定值的结果,并返回更新后的值。该函数应该是无副作用的,因为当由于线程之间的争用而尝试更新失败时,它可能会被重新应用。该函数应用当前值作为其第一个参数,给定的更新作为第二个参数。- 参数:
x- 更新值accumulatorFunction- 两个参数的无副作用函数- 返回:
- 更新值
- 自从:
- 1.8
-
toString
返回当前值的字符串表示形式。 -
intValue
public int intValue()- 指定者:
intValue在类Number中- 返回:
-
转换为类型
int后此对象表示的数值。 - 看Java 语言规范:
-
5.1.3 缩小原始转换
-
longValue
public long longValue() -
floatValue
public float floatValue()- 指定者:
floatValue在类Number中- 返回:
-
转换为类型
float后此对象表示的数值。 - 看Java 语言规范:
-
5.1.2 拓宽原始转换
-
doubleValue
public double doubleValue()- 指定者:
doubleValue在类Number中- 返回:
-
转换为类型
double后此对象表示的数值。 - 看Java 语言规范:
-
5.1.2 拓宽原始转换
-
getPlain
public final long getPlain()返回当前值,具有读取的内存语义,就好像变量被声明为 non-volatile一样。- 返回:
- 值
- 自从:
- 9
-
setPlain
public final void setPlain(long newValue) 将值设置为newValue,设置的内存语义就好像变量被声明为 non-volatile和 non-final一样。- 参数:
newValue- 新值- 自从:
- 9
-
getOpaque
public final long getOpaque()返回当前值,具有VarHandle.getOpaque(java.lang.Object...)指定的记忆效应。- 返回:
- 值
- 自从:
- 9
-
setOpaque
public final void setOpaque(long newValue) 将值设置为newValue,具有VarHandle.setOpaque(java.lang.Object...)指定的记忆效应。- 参数:
newValue- 新值- 自从:
- 9
-
getAcquire
public final long getAcquire()返回当前值,具有VarHandle.getAcquire(java.lang.Object...)指定的记忆效应。- 返回:
- 值
- 自从:
- 9
-
setRelease
public final void setRelease(long newValue) 将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的记忆效应。- 参数:
newValue- 新值- 自从:
- 9
-
compareAndExchange
public final long compareAndExchange(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchange(java.lang.Object...)指定的记忆效应,则原子地将值设置为newValue。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
- 见证值,如果成功,它将与预期值相同
- 自从:
- 9
-
compareAndExchangeAcquire
public final long compareAndExchangeAcquire(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchangeAcquire(java.lang.Object...)指定的记忆效应,则原子地将值设置为newValue。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
- 见证值,如果成功,它将与预期值相同
- 自从:
- 9
-
compareAndExchangeRelease
public final long compareAndExchangeRelease(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue,具有VarHandle.compareAndExchangeRelease(java.lang.Object...)指定的记忆效应,则原子地将值设置为newValue。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
- 见证值,如果成功,它将与预期值相同
- 自从:
- 9
-
weakCompareAndSetVolatile
public final boolean weakCompareAndSetVolatile(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSet(java.lang.Object...)指定的记忆效应。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,具有由VarHandle.weakCompareAndSetAcquire(java.lang.Object...)指定的记忆效应。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(long expectedValue, long newValue) 如果当前值为== expectedValue,则可能自动将该值设置为newValue,并具有由VarHandle.weakCompareAndSetRelease(java.lang.Object...)指定的记忆效应。- 参数:
expectedValue- 期望值newValue- 新值- 返回:
true如果成功- 自从:
- 9
-
compareAndExchange(long, long)和compareAndSet(long, long)等方法)。