java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicLong
- 所有已实现的接口:
Serializable
可以自动更新的
long
值。有关原子访问属性的描述,请参阅 VarHandle
规范。 AtomicLong
用于原子递增序列号等应用程序,不能用作 Long
的替代品。但是,此类确实扩展了 Number
以允许处理基于数字的类的工具和实用程序进行统一访问。
- 自从:
- 1.5
- 参见:
-
构造方法总结
构造方法 -
方法总结
修饰符和类型方法描述final long
accumulateAndGet
(long x, LongBinaryOperator accumulatorFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)
指定的记忆效应)当前值以及将给定函数应用于当前值和给定值的结果,并返回更新后的值。final long
addAndGet
(long delta) 以原子方式将给定值添加到当前值,具有VarHandle.getAndAdd(java.lang.Object...)
指定的记忆效应。final long
compareAndExchange
(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue
,具有VarHandle.compareAndExchange(java.lang.Object...)
指定的记忆效应,则原子地将值设置为newValue
。final long
compareAndExchangeAcquire
(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue
,具有VarHandle.compareAndExchangeAcquire(java.lang.Object...)
指定的记忆效应,则原子地将值设置为newValue
。final long
compareAndExchangeRelease
(long expectedValue, long newValue) 如果当前值称为 witness value、== expectedValue
,具有VarHandle.compareAndExchangeRelease(java.lang.Object...)
指定的记忆效应,则原子地将值设置为newValue
。final boolean
compareAndSet
(long expectedValue, long newValue) 如果当前值为== expectedValue
,则以原子方式将值设置为newValue
,并具有由VarHandle.compareAndSet(java.lang.Object...)
指定的记忆效应。final long
以原子方式递减当前值,具有VarHandle.getAndAdd(java.lang.Object...)
指定的记忆效应。double
float
final long
get()
返回当前值,具有VarHandle.getVolatile(java.lang.Object...)
指定的记忆效应。final long
返回当前值,具有VarHandle.getAcquire(java.lang.Object...)
指定的记忆效应。final long
getAndAccumulate
(long x, LongBinaryOperator accumulatorFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)
指定的记忆效应)当前值以及将给定函数应用于当前值和给定值的结果,并返回先前的值。final long
getAndAdd
(long delta) 以原子方式将给定值添加到当前值,具有VarHandle.getAndAdd(java.lang.Object...)
指定的记忆效应。final long
以原子方式递减当前值,具有VarHandle.getAndAdd(java.lang.Object...)
指定的记忆效应。final long
以原子方式递增当前值,具有VarHandle.getAndAdd(java.lang.Object...)
指定的记忆效应。final long
getAndSet
(long newValue) 以原子方式将值设置为newValue
并返回旧值,具有VarHandle.getAndSet(java.lang.Object...)
指定的记忆效应。final long
getAndUpdate
(LongUnaryOperator updateFunction) 以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)
指定的记忆效应)当前值与应用给定函数的结果,返回先前的值。final long
返回当前值,具有VarHandle.getOpaque(java.lang.Object...)
指定的记忆效应。final long
getPlain()
返回当前值,具有读取的内存语义,就好像变量被声明为 non-volatile
一样。final long
以原子方式递增当前值,具有VarHandle.getAndAdd(java.lang.Object...)
指定的记忆效应。int
intValue()
final void
lazySet
(long newValue) 将值设置为newValue
,具有VarHandle.setRelease(java.lang.Object...)
指定的记忆效应。long
final void
set
(long newValue) 将值设置为newValue
,具有VarHandle.setVolatile(java.lang.Object...)
指定的记忆效应。final void
setOpaque
(long newValue) 将值设置为newValue
,具有VarHandle.setOpaque(java.lang.Object...)
指定的记忆效应。final void
setPlain
(long newValue) 将值设置为newValue
,设置的内存语义就好像变量被声明为 non-volatile
和 non-final
一样。final void
setRelease
(long newValue) 将值设置为newValue
,具有VarHandle.setRelease(java.lang.Object...)
指定的记忆效应。toString()
返回当前值的字符串表示形式。final long
updateAndGet
(LongUnaryOperator updateFunction) 使用给定函数的应用结果以原子方式更新(具有VarHandle.compareAndSet(java.lang.Object...)
指定的记忆效应)当前值,返回更新后的值。final boolean
weakCompareAndSet
(long expectedValue, long newValue) 已弃用。final boolean
weakCompareAndSetAcquire
(long expectedValue, long newValue) 如果当前值为== expectedValue
,则可能自动将该值设置为newValue
,具有由VarHandle.weakCompareAndSetAcquire(java.lang.Object...)
指定的记忆效应。final boolean
weakCompareAndSetPlain
(long expectedValue, long newValue) 如果当前值为== expectedValue
,则可能自动将该值设置为newValue
,并具有由VarHandle.weakCompareAndSetPlain(java.lang.Object...)
指定的记忆效应。final boolean
weakCompareAndSetRelease
(long expectedValue, long newValue) 如果当前值为== expectedValue
,则可能自动将该值设置为newValue
,并具有由VarHandle.weakCompareAndSetRelease(java.lang.Object...)
指定的记忆效应。final boolean
weakCompareAndSetVolatile
(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)
等方法)。