モジュール java.base

クラスAtomicInteger

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


    public class AtomicInteger
    extends Number
    implements Serializable
    原子的な更新が可能なint値です。 アトミック・アクセスのプロパティについては、VarHandle仕様を参照してください。 AtomicIntegerは、原子的に増分されるカウンタなどのアプリケーションで使用されます。これをIntegerの代替として使用することはできません。 ただし、このクラスはNumberを拡張して、数値ベースのクラスを処理するツールやユーティリティによる単一的なアクセスを許可します。
    導入されたバージョン:
    1.5
    関連項目:
    直列化された形式
    • コンストラクタの詳細

      • AtomicInteger

        public AtomicInteger​(int initialValue)
        指定された初期パラメータを使って、新しいAtomicIntegerを作成します。
        パラメータ:
        initialValue - 初期値
      • AtomicInteger

        public AtomicInteger​()
        初期値0を使って、新しいAtomicIntegerを作成します。
    • メソッドの詳細

      • set

        public final void set​(int newValue)
        値をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。
        パラメータ:
        newValue - 新しい値
      • 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)
        現在の値== expectedValuenewValueに値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果があります。
        パラメータ:
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功する場合はtrue falseは、実際の値が予想される値と等価ではないことを示す。
      • weakCompareAndSet

        @Deprecated(since="9")
        public final boolean weakCompareAndSet​(int expectedValue,
                                               int newValue)
        非推奨。 この方法は、プレーン・メモリー効果を持っていますが、メソッド名は、揮発性メモリー効果の(compareAndExchange(int, int)compareAndSet(int, int)などのメソッドを参照してください)を意味します。 プレーンまたは揮発性メモリー効果の混乱を避けるために、代わりにweakCompareAndSetPlain(int, int)メソッドを使用することをお勧めします。
        おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。
        パラメータ:
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功した場合はtrue
        関連項目:
        weakCompareAndSetPlain(int, int)
      • weakCompareAndSetPlain

        public final boolean weakCompareAndSetPlain​(int expectedValue,
                                                    int newValue)
        おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。
        パラメータ:
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        成功した場合はtrue
        導入されたバージョン:
        9
      • getAndIncrement

        public final int getAndIncrement​()
        VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。

        getAndAdd(1)と等価です。

        戻り値:
        前の値
      • getAndDecrement

        public final int getAndDecrement​()
        VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。

        getAndAdd(-1)と等価です。

        戻り値:
        前の値
      • 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)と等価です。

        戻り値:
        更新された値
      • decrementAndGet

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

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

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

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

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

        public int intValue​()
        このAtomicIntegerの現在の値をintとして返し、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を返します。 get()と等価です。
        定義:
        intValue、クラス: Number
        戻り値:
        このオブジェクトが表す数値をint型に変換した値。
      • longValue

        public long longValue​()
        AtomicIntegerの現在の値をlongとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。
        定義:
        longValue、クラス: Number
        戻り値:
        このオブジェクトが表す数値をlong型に変換した値。
        Java™言語仕様:
        5.1.2 拡張プリミティブ変換
      • floatValue

        public float floatValue​()
        AtomicIntegerの現在の値をfloatとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。
        定義:
        floatValue、クラス: Number
        戻り値:
        このオブジェクトが表す数値をfloat型に変換した値。
        Java™言語仕様:
        5.1.2 拡張プリミティブ変換
      • doubleValue

        public double doubleValue​()
        AtomicIntegerの現在の値をdoubleとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。
        定義:
        doubleValue、クラス: Number
        戻り値:
        このオブジェクトが表す数値をdouble型に変換した値。
        Java™言語仕様:
        5.1.2 拡張プリミティブ変換
      • getPlain

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

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

        public final int getOpaque​()
        VarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。
        戻り値:
        導入されたバージョン:
        9
      • setOpaque

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

        public final int getAcquire​()
        VarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。
        戻り値:
        導入されたバージョン:
        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)
        「証人の価値」== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果が適用されます。
        パラメータ:
        expectedValue - 期待値
        newValue - 新しい値
        戻り値:
        目撃者の価値は、成功した場合の期待値と同じです
        導入されたバージョン:
        9
      • compareAndExchangeAcquire

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

        public final int compareAndExchangeRelease​(int expectedValue,
                                                   int newValue)
        「証人の価値」== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、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