模块  java.base

Class AtomicReferenceArray<E>

  • 参数类型
    E - 此数组中保存的元素的基类
    实现的所有接口
    Serializable

    public class AtomicReferenceArray<E>
    extends Object
    implements Serializable
    一组对象引用,其中元素可以原子方式更新。 有关原子访问属性的描述,请参阅VarHandle规范。
    从以下版本开始:
    1.5
    另请参见:
    Serialized Form
    • 构造方法详细信息

      • AtomicReferenceArray

        public AtomicReferenceArray​(int length)
        创建一个给定长度的新AtomicReferenceArray,所有元素最初为null。
        参数
        length - 数组的长度
      • AtomicReferenceArray

        public AtomicReferenceArray​(E[] array)
        创建一个新的AtomicReferenceArray,其长度与从给定数组中复制的所有元素相同。
        参数
        array - 要从中复制元素的数组
        异常
        NullPointerException - 如果array为null
    • 方法详细信息

      • length

        public final int length()
        返回数组的长度。
        结果
        数组的长度
      • lazySet

        public final void lazySet​(int i,
                                  E newValue)
        将index位置的元件 inewValue如通过指定,记忆效应 VarHandle.setRelease(java.lang.Object...)
        参数
        i - 该指数
        newValue - 新值
        从以下版本开始:
        1.6
      • getAndSet

        public final E getAndSet​(int i,
                                 E newValue)
        以原子方式设置在索引元件 inewValue ,并返回原来的值,具有记忆效果,通过指定 VarHandle.getAndSet(java.lang.Object...)
        参数
        i - 该指数
        newValue - 新值
        结果
        以前的值
      • compareAndSet

        public final boolean compareAndSet​(int i,
                                           E expectedValue,
                                           E newValue)
        以原子方式设置在索引元件 inewValue如果该元素的当前值 == expectedValue如通过指定,记忆效应 VarHandle.compareAndSet(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 期望值
        newValue - 新值
        结果
        true如果成功。 错误返回表示实际值不等于预期值。
      • weakCompareAndSetPlain

        public final boolean weakCompareAndSetPlain​(int i,
                                                    E expectedValue,
                                                    E newValue)
        可能以原子方式设置在索引元件 inewValue如果该元素的当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSetPlain(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 期望值
        newValue - 新值
        结果
        true如果成功
        从以下版本开始:
        9
      • getAndUpdate

        public final E getAndUpdate​(int i,
                                    UnaryOperator<E> updateFunction)
        原子更新(具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素以及应用给定函数的结果,返回先前的值。 该函数应该是无副作用的,因为当尝试的更新由于线程之间的争用而失败时,它可能会被重新应用。
        参数
        i - 该指数
        updateFunction - 无副作用的功能
        结果
        以前的值
        从以下版本开始:
        1.8
      • updateAndGet

        public final E updateAndGet​(int i,
                                    UnaryOperator<E> updateFunction)
        原子更新(具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素以及应用给定函数的结果,返回更新的值。 该函数应该是无副作用的,因为当尝试的更新由于线程之间的争用而失败时,它可能会被重新应用。
        参数
        i - 该指数
        updateFunction - 无副作用的功能
        结果
        更新的值
        从以下版本开始:
        1.8
      • getAndAccumulate

        public final E getAndAccumulate​(int i,
                                        E x,
                                        BinaryOperator<E> accumulatorFunction)
        原子更新(具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素,其中将给定函数应用于当前值和给定值,返回先前值。 该函数应该是无副作用的,因为当尝试的更新由于线程之间的争用而失败时,它可能会被重新应用。 该函数应用索引为i的元素的当前值作为其第一个参数,并将给定的更新作为第二个参数。
        参数
        i - 该指数
        x - 更新值
        accumulatorFunction - 两个参数的无副作用函数
        结果
        以前的值
        从以下版本开始:
        1.8
      • accumulateAndGet

        public final E accumulateAndGet​(int i,
                                        E x,
                                        BinaryOperator<E> accumulatorFunction)
        原子更新(具有由VarHandle.compareAndSet(java.lang.Object...)指定的记忆效应)索引i处的元素以及将给定函数应用于当前值和给定值的结果,返回更新的值。 该函数应该是无副作用的,因为当尝试的更新由于线程之间的争用而失败时,它可能会被重新应用。 该函数应用索引为i的元素的当前值作为其第一个参数,并将给定的更新作为第二个参数。
        参数
        i - 该指数
        x - 更新值
        accumulatorFunction - 两个参数的无副作用函数
        结果
        更新的值
        从以下版本开始:
        1.8
      • toString

        public String toString()
        返回数组当前值的String表示形式。
        重写:
        toString在类 Object
        结果
        数组当前值的String表示形式
      • getPlain

        public final E getPlain​(int i)
        返回索引为 i的元素的当前值,其内存语义为 i ,就好像该变量被声明为非 volatile
        参数
        i - 该指数
        结果
        价值
        从以下版本开始:
        9
      • setPlain

        public final void setPlain​(int i,
                                   E newValue)
        将索引 i处的元素设置为 newValue ,其内存语义设置为将变量声明为非 volatile和非 final
        参数
        i - 索引
        newValue - 新值
        从以下版本开始:
        9
      • getOpaque

        public final E getOpaque​(int i)
        返回索引为 i的元素的当前值,其内存效果由 VarHandle.getOpaque(java.lang.Object...)指定。
        参数
        i - 该指数
        结果
        价值
        从以下版本开始:
        9
      • setOpaque

        public final void setOpaque​(int i,
                                    E newValue)
        将index位置的元件 inewValue如通过指定,记忆效应 VarHandle.setOpaque(java.lang.Object...)
        参数
        i - 该指数
        newValue - 新值
        从以下版本开始:
        9
      • getAcquire

        public final E getAcquire​(int i)
        返回索引为 i的元素的当前值,其内存效果由 VarHandle.getAcquire(java.lang.Object...)指定。
        参数
        i - 该指数
        结果
        价值
        从以下版本开始:
        9
      • setRelease

        public final void setRelease​(int i,
                                     E newValue)
        将index位置的元件 inewValue如通过指定,记忆效应 VarHandle.setRelease(java.lang.Object...)
        参数
        i - 该指数
        newValue - 新值
        从以下版本开始:
        9
      • compareAndExchange

        public final E compareAndExchange​(int i,
                                          E expectedValue,
                                          E newValue)
        以原子方式设置在索引元件 inewValue如果该元素的当前值,被称为 证人值== expectedValue如通过指定,记忆效应 VarHandle.compareAndExchange(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 期望值
        newValue - 新值
        结果
        见证值,如果成功则与预期值相同
        从以下版本开始:
        9
      • compareAndExchangeAcquire

        public final E compareAndExchangeAcquire​(int i,
                                                 E expectedValue,
                                                 E newValue)
        如果元素的当前值(称为 见证值 == expectedValue ,具有由 VarHandle.compareAndExchangeAcquire(java.lang.Object...)指定的记忆效应), == expectedValue原子方式将索引 i newValue的元素设置为 newValue
        参数
        i - 该指数
        expectedValue - 期望值
        newValue - 新值
        结果
        见证值,如果成功则与预期值相同
        从以下版本开始:
        9
      • compareAndExchangeRelease

        public final E compareAndExchangeRelease​(int i,
                                                 E expectedValue,
                                                 E newValue)
        以原子方式设置在索引元件 inewValue如果该元素的当前值,被称为 证人值== expectedValue如通过指定,记忆效应 VarHandle.compareAndExchangeRelease(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 预期值
        newValue - 新值
        结果
        见证值,如果成功则与预期值相同
        从以下版本开始:
        9
      • weakCompareAndSetVolatile

        public final boolean weakCompareAndSetVolatile​(int i,
                                                       E expectedValue,
                                                       E newValue)
        可能以原子方式设置在索引元件 inewValue如果该元素的当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSet(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 预期值
        newValue - 新值
        结果
        true如果成功
        从以下版本开始:
        9
      • weakCompareAndSetAcquire

        public final boolean weakCompareAndSetAcquire​(int i,
                                                      E expectedValue,
                                                      E newValue)
        可能以原子方式设置在索引元件 inewValue如果该元素的当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSetAcquire(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 期望值
        newValue - 新值
        结果
        true如果成功
        从以下版本开始:
        9
      • weakCompareAndSetRelease

        public final boolean weakCompareAndSetRelease​(int i,
                                                      E expectedValue,
                                                      E newValue)
        可能以原子方式设置在索引元件 inewValue如果该元素的当前值 == expectedValue如通过指定,记忆效应 VarHandle.weakCompareAndSetRelease(java.lang.Object...)
        参数
        i - 该指数
        expectedValue - 预期值
        newValue - 新值
        结果
        true若有成功
        从以下版本开始:
        9