モジュール java.base

クラスAtomicInteger

java.lang.Object
java.lang.Number
java.util.concurrent.atomic.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を作成します。
  • メソッドの詳細

    • get

      public final int get()
      VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。
      戻り値:
      現行値
    • 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

      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