Module  java.base

Class AtomicInteger

  • All Implemented Interfaces:
    Serializable


    public class AtomicInteger
    extends Number
    implements Serializable
    可能原子更新的值为int 有关原子访问属性的说明,请参阅VarHandle规范。 一个AtomicInteger用于诸如原子增量计数器的应用中,不能用作Integer的替代品。 但是,该类确实扩展了Number以允许使用基于数字类的工具和实用程序的统一访问。
    从以下版本开始:
    1.5
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • AtomicInteger

        public AtomicInteger​(int initialValue)
        用给定的初始值创建一个新的AtomicInteger。
        参数
        initialValue - 初始值
      • AtomicInteger

        public AtomicInteger​()
        创建一个新的AtomicInteger,初始值为 0
    • 方法详细信息

      • lazySet

        public final void lazySet​(int newValue)
        将值设置为 newValue ,具有 VarHandle.setRelease(java.lang.Object...)指定的内存效果。
        参数
        newValue - 新价值
        从以下版本开始:
        1.6
      • getAndSet

        public final int getAndSet​(int newValue)
        将值设置为 newValue并返回旧值,具有 VarHandle.getAndSet(java.lang.Object...)指定的内存效果。
        参数
        newValue - 新值
        结果
        以前的值
      • compareAndSet

        public final boolean compareAndSet​(int expectedValue,
                                           int newValue)
        原子将值设置为 newValue如果当前值 == expectedValue如通过指定,记忆效应 VarHandle.compareAndSet(java.lang.Object...)
        参数
        expectedValue - 期望值
        newValue - 新值
        结果
        true如果成功。 False return表示实际值不等于预期值。
      • weakCompareAndSetPlain

        public final boolean weakCompareAndSetPlain​(int expectedValue,
                                                    int newValue)
        可能原子将值设置为 newValue如果当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSetPlain(java.lang.Object...)
        参数
        expectedValue - 预期值
        newValue - 新值
        结果
        true如果成功
        从以下版本开始:
        9
      • getAndAdd

        public final int getAndAdd​(int delta)
        原始地将给定的值添加到当前值,具有由 VarHandle.getAndAdd(java.lang.Object...)指定的内存效果。
        参数
        delta - 要添加的值
        结果
        以前的值
      • incrementAndGet

        public final int incrementAndGet​()
        按照VarHandle.getAndAdd(java.lang.Object...)指定的内存效果,原子地增加当前值。

        相当于addAndGet(1)

        结果
        更新的值
      • addAndGet

        public final int addAndGet​(int delta)
        原始地将给定的值添加到当前值,具有由 VarHandle.getAndAdd(java.lang.Object...)指定的内存效果。
        参数
        delta - 要添加的值
        结果
        更新的值
      • getAndUpdate

        public final int getAndUpdate​(IntUnaryOperator updateFunction)
        使用给定函数的结果对当前值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的内存效果),返回上一个值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。
        参数
        updateFunction - 无副作用的功能
        结果
        以前的值
        从以下版本开始:
        1.8
      • updateAndGet

        public final int updateAndGet​(IntUnaryOperator updateFunction)
        使用给定函数的结果对当前值进行原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效果),返回更新的值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。
        参数
        updateFunction - 无副作用的功能
        结果
        更新的值
        从以下版本开始:
        1.8
      • getAndAccumulate

        public final int getAndAccumulate​(int x,
                                          IntBinaryOperator accumulatorFunction)
        将当前值与给定函数应用于当前值和给定值的原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效应),返回上一个值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。 该函数应用当前值作为其第一个参数,给定的更新作为第二个参数。
        参数
        x - 更新值
        accumulatorFunction - 两个参数的副作用函数
        结果
        以前的值
        从以下版本开始:
        1.8
      • accumulateAndGet

        public final int accumulateAndGet​(int x,
                                          IntBinaryOperator accumulatorFunction)
        将当前值与给定函数应用于当前值和给定值的原子更新(具有VarHandle.compareAndSet(java.lang.Object...)指定的存储器效应),返回更新后的值。 该功能应该是无副作用的,因为尝试的更新由于线程之间的争用而失败时可能会被重新应用。 该函数应用当前值作为其第一个参数,给定的更新作为第二个参数。
        参数
        x - 更新值
        accumulatorFunction - 两个参数的无效副作用
        结果
        更新的值
        从以下版本开始:
        1.8
      • toString

        public String toString​()
        返回当前值的String表示形式。
        重写:
        toString Object
        结果
        当前值的String表示形式
      • longValue

        public long longValue​()
        返回此的当前值 AtomicInteger作为 long加宽原始转换后,通过规定的,具有记忆效果 VarHandle.getVolatile(java.lang.Object...)
        Specified by:
        longValueNumber
        结果
        该对象在转换为 long之后表示的数值。
        See The Java™ Language Specification:
        5.1.2扩大原始转换
      • floatValue

        public float floatValue​()
        返回此的当前值 AtomicInteger作为 float加宽原始转换后,通过规定的,具有记忆效果 VarHandle.getVolatile(java.lang.Object...)
        Specified by:
        floatValueNumber
        结果
        该对象在转换为 float型后表示的数值。
        See The Java™ Language Specification:
        5.1.2扩大原始转换
      • doubleValue

        public double doubleValue​()
        返回此的当前值 AtomicInteger作为 double加宽原始转换后,通过规定的,具有记忆效果 VarHandle.getVolatile(java.lang.Object...)
        Specified by:
        doubleValueNumber
        结果
        该对象在转换为 double之后表示的数值。
        See The Java™ Language Specification:
        5.1.2扩大原始转换
      • getPlain

        public final int getPlain​()
        返回当前值,具有读取的内存语义,就好像变量被声明为非 volatile
        结果
        价值
        从以下版本开始:
        9
      • setPlain

        public final void setPlain​(int newValue)
        将值设置为 newValue ,具有设置的内存语义,如同该变量被宣告为非 volatile final
        参数
        newValue - 新值
        从以下版本开始:
        9
      • setOpaque

        public final void setOpaque​(int newValue)
        将值设置为 newValue ,具有 VarHandle.setOpaque(java.lang.Object...)指定的内存效果。
        参数
        newValue - 新值
        从以下版本开始:
        9
      • setRelease

        public final void setRelease​(int newValue)
        将值设置为 newValue ,具有 VarHandle.setRelease(java.lang.Object...)指定的内存效果。
        参数
        newValue - 新值
        从以下版本开始:
        9
      • compareAndExchange

        public final int compareAndExchange​(int expectedValue,
                                            int newValue)
        原子将值设置为 newValue如果当前值,被称为 证人值== expectedValue如通过指定,记忆效应 VarHandle.compareAndExchange(java.lang.Object...)
        参数
        expectedValue - 期望值
        newValue - 新值
        结果
        见证价值,如果成功,将与预期价值相同
        从以下版本开始:
        9
      • compareAndExchangeAcquire

        public final int compareAndExchangeAcquire​(int expectedValue,
                                                   int newValue)
        原子将值设置为 newValue如果当前值,被称为 证人值== expectedValue如通过指定,记忆效应 VarHandle.compareAndExchangeAcquire(java.lang.Object...)
        参数
        expectedValue - 预期值
        newValue - 新价值
        结果
        见证价值,如果成功,将与预期价值相同
        从以下版本开始:
        9
      • compareAndExchangeRelease

        public final int compareAndExchangeRelease​(int expectedValue,
                                                   int newValue)
        原子将值设置为 newValue如果当前值,被称为 证人值== expectedValue如通过指定,记忆效应 VarHandle.compareAndExchangeRelease(java.lang.Object...)
        参数
        expectedValue - 期望值
        newValue - 新值
        结果
        见证价值,如果成功,将与预期价值相同
        从以下版本开始:
        9
      • weakCompareAndSetVolatile

        public final boolean weakCompareAndSetVolatile​(int expectedValue,
                                                       int newValue)
        可能原子将值设置为 newValue如果当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSet(java.lang.Object...)
        参数
        expectedValue - 预期值
        newValue - 新值
        结果
        true如果成功
        从以下版本开始:
        9
      • weakCompareAndSetAcquire

        public final boolean weakCompareAndSetAcquire​(int expectedValue,
                                                      int newValue)
        可能原子将值设置为 newValue如果当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSetAcquire(java.lang.Object...)
        参数
        expectedValue - 期望值
        newValue - 新的价值
        结果
        true如果成功
        从以下版本开始:
        9
      • weakCompareAndSetRelease

        public final boolean weakCompareAndSetRelease​(int expectedValue,
                                                      int newValue)
        可能原子将值设置为 newValue如果当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSetRelease(java.lang.Object...)
        参数
        expectedValue - 预期值
        newValue - 新的价值
        结果
        true如果成功
        从以下版本开始:
        9