java.lang.Object
java.util.concurrent.atomic.AtomicIntegerArray
- すべての実装されたインタフェース:
Serializable
public class AtomicIntegerArray extends Object implements Serializable
要素の原子的な更新が可能な
int
配列です。 アトミック・アクセスのプロパティについては、VarHandle
仕様を参照してください。 - 導入されたバージョン:
- 1.5
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ説明AtomicIntegerArray
(int length) 指定された長さの新しいAtomicIntegerArrayを作成し、すべての要素はゼロに初期化されます。AtomicIntegerArray
(int[] array) 指定された配列と同じ長さのAtomicIntegerArrayを新しく作成します。すべての要素は、指定された配列からコピーされます。 -
メソッドのサマリー
修飾子と型メソッド説明final int
accumulateAndGet
(int i, int x, IntBinaryOperator accumulatorFunction) インデックスi
の要素を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。final int
addAndGet
(int i, int delta) 指定された値をインデックスi
の要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果が適用されます。final int
compareAndExchange
(int i, int expectedValue, int newValue) 要素の現在値(「証人の価値」、== expectedValue
と呼ばれ、VarHandle.compareAndExchange(java.lang.Object...)
で指定されたメモリー効果を持つ要素)があれば、要素i
の要素をnewValue
に原子的に設定します。final int
compareAndExchangeAcquire
(int i, int expectedValue, int newValue) 要素の現在値(「証人の価値」、== expectedValue
と呼ばれ、VarHandle.compareAndExchangeAcquire(java.lang.Object...)
で指定されたメモリー効果を持つ要素)があれば、要素i
の要素をnewValue
に原子的に設定します。final int
compareAndExchangeRelease
(int i, int expectedValue, int newValue) 要素の現在値(「証人の価値」、== expectedValue
と呼ばれ、VarHandle.compareAndExchangeRelease(java.lang.Object...)
で指定されたメモリー効果を持つ要素)があれば、要素i
の要素をnewValue
に原子的に設定します。final boolean
compareAndSet
(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.compareAndSet(java.lang.Object...)
で指定されたメモリー効果を持つ場合、要素i
の要素を原子的にnewValue
に原子的に設定します。final int
decrementAndGet
(int i) インデックスi
の要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果が適用されます。final int
get
(int i) インデックスi
の要素の現在の値をVarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果で返します。final int
getAcquire
(int i) インデックスi
の要素の現在の値をVarHandle.getAcquire(java.lang.Object...)
で指定されたメモリー効果で返します。final int
getAndAccumulate
(int i, int x, IntBinaryOperator accumulatorFunction) インデックスi
の要素を現在の値と与えられた値に適用した結果を原子的に更新し、前の値を返します。final int
getAndAdd
(int i, int delta) 指定された値をインデックスi
の要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果が適用されます。final int
getAndDecrement
(int i) インデックスi
の要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果が適用されます。final int
getAndIncrement
(int i) インデックスi
の要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果が適用されます。final int
getAndSet
(int i, int newValue) インデックスi
の要素を原子的にnewValue
に設定し、VarHandle.getAndSet(java.lang.Object...)
で指定されたメモリー効果を持つ古い値を返します。final int
getAndUpdate
(int i, IntUnaryOperator updateFunction) インデックスi
の要素を、指定された関数を適用した結果に原子的に更新し、前の値を返します。final int
getOpaque
(int i) インデックスi
の要素の現在の値をVarHandle.getOpaque(java.lang.Object...)
で指定されたメモリー効果で返します。final int
getPlain
(int i) インデックスi
にある要素の現在の値を返します。変数が非volatile
と宣言されているかのように、読み込みのメモリー・セマンティクスを持ちます。final int
incrementAndGet
(int i) インデックスi
の要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果が適用されます。final void
lazySet
(int i, int newValue) i
の要素をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。final int
length()
配列の長さを返します。final void
set
(int i, int newValue) i
の要素をnewValue
に設定し、VarHandle.setVolatile(java.lang.Object...)
で指定されたメモリー効果を設定します。final void
setOpaque
(int i, int newValue) i
の要素をnewValue
に設定し、VarHandle.setOpaque(java.lang.Object...)
で指定されたメモリー効果を設定します。final void
setPlain
(int i, int newValue) インデックスi
の要素をnewValue
に設定し、変数が非volatile
および非final
として宣言されているかのように設定するメモリー・セマンティクスを設定します。final void
setRelease
(int i, int newValue) i
の要素をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。toString()
配列の現在値の文字列表現を返します。final int
updateAndGet
(int i, IntUnaryOperator updateFunction) インデックスi
の要素を、指定された関数を適用した結果に原子的に更新し、更新された値を返します。final boolean
weakCompareAndSet
(int i, int expectedValue, int newValue) 非推奨。final boolean
weakCompareAndSetAcquire
(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSetAcquire(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。final boolean
weakCompareAndSetPlain
(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSetPlain(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。final boolean
weakCompareAndSetRelease
(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSetRelease(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。final boolean
weakCompareAndSetVolatile
(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSet(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。
-
コンストラクタの詳細
-
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) 要素の現在値== expectedValue
がVarHandle.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)
メソッドを使用することをお勧めします。要素の現在値== expectedValue
がVarHandle.weakCompareAndSetPlain(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。- パラメータ:
i
- インデックスexpectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 関連項目:
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.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()配列の現在値の文字列表現を返します。 -
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) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSet(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。- パラメータ:
i
- インデックスexpectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 導入されたバージョン:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSetAcquire(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。- パラメータ:
i
- インデックスexpectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 導入されたバージョン:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(int i, int expectedValue, int newValue) 要素の現在値== expectedValue
がVarHandle.weakCompareAndSetRelease(java.lang.Object...)
で指定されたメモリー効果を持つ場合、インデックスi
の要素をnewValue
に原子的にアトミックに設定します。- パラメータ:
i
- インデックスexpectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 導入されたバージョン:
- 9
-
compareAndExchange(int, int, int)
やcompareAndSet(int, int, int)
などのメソッドを参照してください)を意味します。