モジュール java.base

クラスAtomicIntegerArray

java.lang.Object
java.util.concurrent.atomic.AtomicIntegerArray
すべての実装されたインタフェース:
Serializable

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

    • AtomicIntegerArray

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

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

    • length

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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