モジュール java.base

クラスAtomicLongArray

  • すべての実装されたインタフェース:
    Serializable

    public class AtomicLongArray
    extends Object
    implements Serializable
    要素の原子的な更新が可能なlong配列です。 アトミック・アクセスのプロパティについては、VarHandle仕様を参照してください。
    導入されたバージョン:
    1.5
    関連項目:
    直列化された形式
    • コンストラクタの詳細

      • AtomicLongArray

        public AtomicLongArray​(int length)
        指定された長さの新しいAtomicLongArrayを作成し、すべての要素はゼロに初期化されます。
        パラメータ:
        length - 配列の長さ
      • AtomicLongArray

        public AtomicLongArray​(long[] array)
        指定された配列と同じ長さのAtomicLongArrayを新しく作成します。すべての要素は、指定された配列からコピーされます。
        パラメータ:
        array - 要素のコピー元の配列
        例外:
        NullPointerException - 配列がnullの場合
    • メソッドの詳細

      • length

        public final int length()
        配列の長さを返します。
        戻り値:
        arrayの長さ
      • get

        public final long get​(int i)
        インデックスiの要素の現在の値をVarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果で返します。
        パラメータ:
        i - インデックス
        戻り値:
        現行値
      • set

        public final void set​(int i,
                              long newValue)
        iの要素をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。
        パラメータ:
        i - インデックス
        newValue - 新しい値
      • lazySet

        public final void lazySet​(int i,
                                  long newValue)
        iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。
        パラメータ:
        i - インデックス
        newValue - 新しい値
        導入されたバージョン:
        1.6
      • getAndSet

        public final long getAndSet​(int i,
                                    long newValue)
        インデックスiの要素を原子的に newValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果を持つ古い値を返します。
        パラメータ:
        i - インデックス
        newValue - 新しい値
        戻り値:
        前の値
      • compareAndSet

        public final boolean compareAndSet​(int i,
                                           long expectedValue,
                                           long newValue)
        要素の現在値== expectedValueVarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合、要素iの要素を原子的にnewValueに原子的に設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功する場合はtrue falseは、実際の値が予想される値と等価ではないことを示す。
      • weakCompareAndSetPlain

        public final boolean weakCompareAndSetPlain​(int i,
                                                    long expectedValue,
                                                    long newValue)
        要素の現在値== expectedValueVarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功した場合はtrue
        導入されたバージョン:
        9
      • getAndIncrement

        public final long getAndIncrement​(int i)
        インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。

        getAndAdd(i, 1)と等価です。

        パラメータ:
        i - インデックス
        戻り値:
        前の値
      • getAndDecrement

        public final long getAndDecrement​(int i)
        インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。

        getAndAdd(i, -1)と等価です。

        パラメータ:
        i - インデックス
        戻り値:
        前の値
      • getAndAdd

        public final long getAndAdd​(int i,
                                    long delta)
        指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。
        パラメータ:
        i - インデックス
        delta - 追加する値
        戻り値:
        前の値
      • incrementAndGet

        public final long incrementAndGet​(int i)
        インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。

        addAndGet(i, 1)と等価です。

        パラメータ:
        i - インデックス
        戻り値:
        更新された値
      • decrementAndGet

        public final long decrementAndGet​(int i)
        インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。

        addAndGet(i, -1)と等価です。

        パラメータ:
        i - インデックス
        戻り値:
        更新された値
      • addAndGet

        public long addAndGet​(int i,
                              long delta)
        指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。
        パラメータ:
        i - インデックス
        delta - 追加する値
        戻り値:
        更新された値
      • getAndUpdate

        public final long getAndUpdate​(int i,
                                       LongUnaryOperator updateFunction)
        インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。
        パラメータ:
        i - インデックス
        updateFunction - 副作用のない関数
        戻り値:
        前の値
        導入されたバージョン:
        1.8
      • updateAndGet

        public final long updateAndGet​(int i,
                                       LongUnaryOperator updateFunction)
        インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。
        パラメータ:
        i - インデックス
        updateFunction - 副作用のない関数
        戻り値:
        更新された値
        導入されたバージョン:
        1.8
      • getAndAccumulate

        public final long getAndAccumulate​(int i,
                                           long x,
                                           LongBinaryOperator accumulatorFunction)
        インデックスiの要素を現在の値と与えられた値に適用した結果を原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、その最初の引数としてインデックスにある要素の電流値i、及び第二引数として与えられた更新に適用されます。
        パラメータ:
        i - インデックス
        x - 更新値
        accumulatorFunction - 2つの引数を取る、副作用のない関数
        戻り値:
        前の値
        導入されたバージョン:
        1.8
      • accumulateAndGet

        public final long accumulateAndGet​(int i,
                                           long x,
                                           LongBinaryOperator accumulatorFunction)
        インデックスiの要素を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、その最初の引数としてインデックスにある要素の電流値i、及び第二引数として与えられた更新に適用されます。
        パラメータ:
        i - インデックス
        x - 更新値
        accumulatorFunction - 2つの引数を取る、副作用のない関数
        戻り値:
        更新された値
        導入されたバージョン:
        1.8
      • toString

        public String toString()
        配列の現在値の文字列表現を返します。
        オーバーライド:
        toString 、クラス:  Object
        戻り値:
        配列の現在値の文字列表現
      • getPlain

        public final long getPlain​(int i)
        インデックスiにある要素の現在の値を返します。変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持ちます。
        パラメータ:
        i - インデックス
        戻り値:
        導入されたバージョン:
        9
      • setPlain

        public final void setPlain​(int i,
                                   long newValue)
        インデックスiの要素をnewValueに設定し、変数が非volatileおよび非finalとして宣言されているかのように設定するメモリー・セマンティクスを設定します。
        パラメータ:
        i - インデックス
        newValue - 新しい値
        導入されたバージョン:
        9
      • getOpaque

        public final long getOpaque​(int i)
        インデックスiの要素の現在の値をVarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果で返します。
        パラメータ:
        i - インデックス
        戻り値:
        導入されたバージョン:
        9
      • setOpaque

        public final void setOpaque​(int i,
                                    long newValue)
        iの要素をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。
        パラメータ:
        i - インデックス
        newValue - 新しい値
        導入されたバージョン:
        9
      • getAcquire

        public final long getAcquire​(int i)
        インデックスiの要素の現在の値をVarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果で返します。
        パラメータ:
        i - インデックス
        戻り値:
        導入されたバージョン:
        9
      • setRelease

        public final void setRelease​(int i,
                                     long newValue)
        iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。
        パラメータ:
        i - インデックス
        newValue - 新しい値
        導入されたバージョン:
        9
      • compareAndExchange

        public final long compareAndExchange​(int i,
                                             long expectedValue,
                                             long newValue)
        要素の現在値(「証人の価値」== expectedValueと呼ばれ、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        目撃者の価値は、成功した場合の期待値と同じです
        導入されたバージョン:
        9
      • compareAndExchangeAcquire

        public final long compareAndExchangeAcquire​(int i,
                                                    long expectedValue,
                                                    long newValue)
        要素の現在値(「証人の価値」== expectedValueと呼ばれ、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        目撃者の価値は、成功した場合の期待値と同じです
        導入されたバージョン:
        9
      • compareAndExchangeRelease

        public final long compareAndExchangeRelease​(int i,
                                                    long expectedValue,
                                                    long newValue)
        要素の現在値(「証人の価値」== expectedValueと呼ばれ、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        目撃者の価値は、成功した場合の期待値と同じです
        導入されたバージョン:
        9
      • weakCompareAndSetVolatile

        public final boolean weakCompareAndSetVolatile​(int i,
                                                       long expectedValue,
                                                       long newValue)
        要素の現在値== expectedValueVarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功した場合はtrue
        導入されたバージョン:
        9
      • weakCompareAndSetAcquire

        public final boolean weakCompareAndSetAcquire​(int i,
                                                      long expectedValue,
                                                      long newValue)
        要素の現在値== expectedValueVarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功した場合はtrue
        導入されたバージョン:
        9
      • weakCompareAndSetRelease

        public final boolean weakCompareAndSetRelease​(int i,
                                                      long expectedValue,
                                                      long newValue)
        要素の現在値== expectedValueVarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。
        パラメータ:
        i - インデックス
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功した場合はtrue
        導入されたバージョン:
        9