模块 java.base

类 AtomicLong

java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicLong
所有已实现的接口:
Serializable

public class AtomicLong extends Number implements Serializable
可以自动更新的 long 值。有关原子访问属性的描述,请参阅 VarHandle 规范。 AtomicLong 用于原子递增序列号等应用程序,不能用作 Long 的替代品。但是,此类确实扩展了 Number 以允许处理基于数字的类的工具和实用程序进行统一访问。
自从:
1.5
参见:
  • 构造方法详细信息

    • 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

      @Deprecated (since ="9") public final boolean weakCompareAndSet(long expectedValue, long newValue)
      已弃用。
      此方法具有简单的记忆效应,但方法名称暗示易失性记忆效应(请参阅 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

      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
    • toString

      public String  toString()
      返回当前值的字符串表示形式。
      重写:
      toString 在类 Object
      返回:
      当前值的 String 表示形式
    • intValue

      public int intValue()
      在缩小基元转换后返回此 AtomicLong 的当前值作为 int,具有 VarHandle.getVolatile(java.lang.Object...) 指定的记忆效应。
      指定者:
      intValue 在类 Number
      返回:
      转换为类型 int 后此对象表示的数值。
      Java 语言规范:
      5.1.3 缩小原始转换
    • longValue

      public long longValue()
      将此 AtomicLong 的当前值作为 long 返回,具有由 VarHandle.getVolatile(java.lang.Object...) 指定的记忆效应。相当于 get()
      指定者:
      longValue 在类 Number
      返回:
      转换为类型 long 后此对象表示的数值。
    • floatValue

      public float floatValue()
      在扩大基元转换后返回此 AtomicLong 的当前值作为 float,具有 VarHandle.getVolatile(java.lang.Object...) 指定的记忆效应。
      指定者:
      floatValue 在类 Number
      返回:
      转换为类型 float 后此对象表示的数值。
      Java 语言规范:
      5.1.2 拓宽原始转换
    • doubleValue

      public double doubleValue()
      在扩大基元转换后返回此 AtomicLong 的当前值作为 double,具有 VarHandle.getVolatile(java.lang.Object...) 指定的记忆效应。
      指定者:
      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