- java.lang.Object
-
- java.lang.Number
-
- java.util.concurrent.atomic.AtomicLong
-
- All Implemented Interfaces:
-
Serializable
public class AtomicLong extends Number implements Serializable
Along可能原子更新的值。 有关原子访问属性的说明,请参阅VarHandle规范。 一个AtomicLong用于诸如原子增量序列号的应用中,不能用作Long的替代品。 但是,这个类确实扩展了Number以允许使用基于数字类的工具和实用程序的统一访问。- 从以下版本开始:
- 1.5
- 另请参见:
- Serialized Form
-
-
构造方法摘要
构造方法 Constructor 描述 AtomicLong()创建一个新的AtomicLong,初始值为0。AtomicLong(long initialValue)用给定的初始值创建一个新的AtomicLong。
-
方法摘要
所有方法 接口方法 具体的方法 弃用的方法 Modifier and Type 方法 描述 longaccumulateAndGet(long x, LongBinaryOperator accumulatorFunction)将当前值与给定函数应用于当前值和给定值的原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效应),返回更新后的值。longaddAndGet(long delta)原始地将给定的值添加到当前值,具有由VarHandle.getAndAdd(java.lang.Object...)指定的内存效果。longcompareAndExchange(long expectedValue, long newValue)原子将值设置为newValue如果当前值,被称为 证人值 ,== expectedValue如通过指定,记忆效应VarHandle.compareAndExchange(java.lang.Object...)。longcompareAndExchangeAcquire(long expectedValue, long newValue)原子将值设置为newValue如果当前值,被称为 证人值 ,== expectedValue如通过指定,记忆效应VarHandle.compareAndExchangeAcquire(java.lang.Object...)。longcompareAndExchangeRelease(long expectedValue, long newValue)原子将值设置为newValue如果当前值,被称为 证人值 ,== expectedValue如通过指定,记忆效应VarHandle.compareAndExchangeRelease(java.lang.Object...)。booleancompareAndSet(long expectedValue, long newValue)longdecrementAndGet()按照VarHandle.getAndAdd(java.lang.Object...)所规定的内存效果原子递减当前值。doubledoubleValue()floatfloatValue()longget()返回当前值,具有VarHandle.getVolatile(java.lang.Object...)指定的内存效果。longgetAcquire()返回当前值,具有VarHandle.getAcquire(java.lang.Object...)指定的内存效果。longgetAndAccumulate(long x, LongBinaryOperator accumulatorFunction)将当前值与给定函数应用于当前值和给定值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效果),返回上一个值。longgetAndAdd(long delta)将给定的值原子地添加到当前值,具有由VarHandle.getAndAdd(java.lang.Object...)指定的内存效果。longgetAndDecrement()按照VarHandle.getAndAdd(java.lang.Object...)指定的内存效果原子递减当前值。longgetAndIncrement()按照VarHandle.getAndAdd(java.lang.Object...)所规定的内存效果原则上增加当前值。longgetAndSet(long newValue)将值设置为newValue并返回旧值,具有VarHandle.getAndSet(java.lang.Object...)指定的内存效果。longgetAndUpdate(LongUnaryOperator updateFunction)使用给定函数的结果对当前值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的内存效果),返回上一个值。longgetOpaque()返回当前值,具有VarHandle.getOpaque(java.lang.Object...)指定的内存效果。longgetPlain()返回当前值,具有读取的内存语义,就好像变量被声明为非volatile。longincrementAndGet()按照VarHandle.getAndAdd(java.lang.Object...)规定的内存效果,原子地增加当前值。intintValue()voidlazySet(long newValue)将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的内存效果。longlongValue()voidset(long newValue)将值设置为newValue,具有VarHandle.setVolatile(java.lang.Object...)指定的内存效果。voidsetOpaque(long newValue)将值设置为newValue,具有VarHandle.setOpaque(java.lang.Object...)指定的内存效果。voidsetPlain(long newValue)将值设置为newValue,具有设置的内存语义,就像该变量被声明为非volatilefinal。voidsetRelease(long newValue)将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的内存效果。StringtoString()返回当前值的String表示形式。longupdateAndGet(LongUnaryOperator updateFunction)使用给定函数的结果对当前值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的内存效果),返回更新的值。booleanweakCompareAndSet(long expectedValue, long newValue)已过时。该方法具有简单的记忆效应,但方法名称表示易失性记忆效应(参见方法如compareAndExchange(long, long)和compareAndSet(long, long))。 为了避免在简单或易失性记忆效应上的混淆,建议使用方法weakCompareAndSetPlain(long, long)。booleanweakCompareAndSetAcquire(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSetAcquire(java.lang.Object...)。booleanweakCompareAndSetPlain(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSetPlain(java.lang.Object...)。booleanweakCompareAndSetRelease(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSetRelease(java.lang.Object...)。booleanweakCompareAndSetVolatile(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSet(java.lang.Object...)。-
Methods inherited from class java.lang.Number
byteValue, shortValue
-
-
-
-
方法详细信息
-
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- 新值 - 结果
-
true如果成功。 False return表示实际值不等于预期值。
-
weakCompareAndSet
@Deprecated(since="9") public final boolean weakCompareAndSet(long expectedValue, long newValue)
已过时。 该方法具有简单的记忆效应,但方法名称表示易失性记忆效应(参见方法如compareAndExchange(long, long)和compareAndSet(long, long))。 为了避免在简单或易失性记忆效应上的混淆,建议使用方法weakCompareAndSetPlain(long, long)。可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSetPlain(java.lang.Object...)。- 参数
-
expectedValue- 预期值 -
newValue- 新值 - 结果
-
true如果成功 - 另请参见:
-
weakCompareAndSetPlain(long, long)
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应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
public final long getAndUpdate(LongUnaryOperator updateFunction)
使用给定函数的结果对当前值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的内存效果),返回上一个值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。- 参数
-
updateFunction- 无副作用的功能 - 结果
- 以前的值
- 从以下版本开始:
- 1.8
-
updateAndGet
public final long updateAndGet(LongUnaryOperator updateFunction)
使用给定函数的结果对当前值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的内存效果),返回更新的值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。- 参数
-
updateFunction- 无副作用的功能 - 结果
- 更新的值
- 从以下版本开始:
- 1.8
-
getAndAccumulate
public final long getAndAccumulate(long x, LongBinaryOperator accumulatorFunction)将当前值与给定函数应用于当前值和给定值的原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效果),返回上一个值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。 该函数应用当前值作为其第一个参数,给定的更新作为第二个参数。- 参数
-
x- 更新值 -
accumulatorFunction- 两个参数的无效副作用 - 结果
- 以前的值
- 从以下版本开始:
- 1.8
-
accumulateAndGet
public final long accumulateAndGet(long x, LongBinaryOperator accumulatorFunction)将当前值与给定函数应用于当前值和给定值的原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效果),返回更新后的值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。 该函数应用当前值作为其第一个参数,给定的更新作为第二个参数。- 参数
-
x- 更新值 -
accumulatorFunction- 两个参数的无效函数 - 结果
- 更新的值
- 从以下版本开始:
- 1.8
-
intValue
public int intValue()
-
longValue
public long longValue()
将AtomicLong的当前值作为long,其记忆效应由VarHandle.getVolatile(java.lang.Object...)指定。 相当于get()。
-
floatValue
public float floatValue()
- Specified by:
-
floatValue在Number - 结果
-
该对象在转换为
float之后表示的数值。 - See The Java™ Language Specification:
- 5.1.2扩大原始转换
-
doubleValue
public double doubleValue()
- Specified by:
-
doubleValue在Number - 结果
-
该对象在转换为
double类型后表示的数值。 - See The Java™ Language Specification:
- 5.1.2扩大原始转换
-
getPlain
public final long getPlain()
返回当前值,具有读取的内存语义,就好像变量被声明为非volatile。- 结果
- 价值
- 从以下版本开始:
- 9
-
setPlain
public final void setPlain(long newValue)
将值设置为newValue,具有设置的内存语义,就像该变量被宣告为非volatilefinal。- 参数
-
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)原子将值设置为newValue如果当前值,被称为 证人值 ,== expectedValue如通过指定,记忆效应VarHandle.compareAndExchange(java.lang.Object...)。- 参数
-
expectedValue- 期望值 -
newValue- 新的价值 - 结果
- 见证价值,如果成功,将与预期价值相同
- 从以下版本开始:
- 9
-
compareAndExchangeAcquire
public final long compareAndExchangeAcquire(long expectedValue, long newValue)原子将值设置为newValue如果当前值,被称为 证人值 ,== expectedValue如通过指定,记忆效应VarHandle.compareAndExchangeAcquire(java.lang.Object...)。- 参数
-
expectedValue- 预期值 -
newValue- 新值 - 结果
- 见证价值,如果成功,将与预期价值相同
- 从以下版本开始:
- 9
-
compareAndExchangeRelease
public final long compareAndExchangeRelease(long expectedValue, long newValue)原子将值设置为newValue如果当前值,被称为 证人值 ,== expectedValue如通过指定,记忆效应VarHandle.compareAndExchangeRelease(java.lang.Object...)。- 参数
-
expectedValue- 期望值 -
newValue- 新值 - 结果
- 见证价值,如果成功,将与预期价值相同
- 从以下版本开始:
- 9
-
weakCompareAndSetVolatile
public final boolean weakCompareAndSetVolatile(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSet(java.lang.Object...)。- 参数
-
expectedValue- 预期值 -
newValue- 新值 - 结果
-
true如果成功 - 从以下版本开始:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSetAcquire(java.lang.Object...)。- 参数
-
expectedValue- 预期值 -
newValue- 新值 - 结果
-
true如果成功 - 从以下版本开始:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(long expectedValue, long newValue)可能原子将值设置为newValue如果当前值== expectedValue如通过指定,记忆效应VarHandle.weakCompareAndSetRelease(java.lang.Object...)。- 参数
-
expectedValue- 预期值 -
newValue- 新值 - 结果
-
true如果成功 - 从以下版本开始:
- 9
-
-