クラスAtomicIntegerArray
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 intaccumulateAndGet(int i, int x, IntBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。final intaddAndGet(int i, int delta) 指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final intcompareAndExchange(int i, int expectedValue, int newValue) 要素の現在の値(「証人の価値」、== expectedValue)がVarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果を持つ場合、索引iの要素をnewValueに原子的に設定します。final intcompareAndExchangeAcquire(int i, int expectedValue, int newValue) 要素の現在の値(「証人の価値」、== expectedValue)がVarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果を持つ場合、索引iの要素をnewValueに原子的に設定します。final intcompareAndExchangeRelease(int i, int expectedValue, int newValue) 要素の現在の値(「証人の価値」、== expectedValue)がVarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果を持つ場合、索引iの要素をnewValueに原子的に設定します。final booleancompareAndSet(int i, int expectedValue, int newValue) 要素の現在の値== expectedValueがVarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合は、索引iの要素をnewValueに原子的に設定します。final intdecrementAndGet(int i) インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final intget(int i) インデックスiの要素の現在の値をVarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果で返します。final intgetAcquire(int i) インデックスiの要素の現在の値をVarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果で返します。final intgetAndAccumulate(int i, int x, IntBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と与えられた値に適用した結果を原子的に更新し、前の値を返します。final intgetAndAdd(int i, int delta) 指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final intgetAndDecrement(int i) インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final intgetAndIncrement(int i) インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final intgetAndSet(int i, int newValue) 索引iの要素をnewValueに原子的に設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果で古い値を返します。final intgetAndUpdate(int i, IntUnaryOperator updateFunction) インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、前の値を返します。final intgetOpaque(int i) インデックスiの要素の現在の値をVarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果で返します。final intgetPlain(int i) インデックスiにある要素の現在の値を返します。変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持ちます。final intincrementAndGet(int i) インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final voidlazySet(int i, int newValue) iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。final intlength()配列の長さを返します。final voidset(int i, int newValue) iの要素をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。final voidsetOpaque(int i, int newValue) iの要素をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。final voidsetPlain(int i, int newValue) インデックスiの要素をnewValueに設定し、変数が非volatileおよび非finalとして宣言されているかのように設定するメモリー・セマンティクスを設定します。final voidsetRelease(int i, int newValue) iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。toString()配列の現在値の文字列表現を返します。final intupdateAndGet(int i, IntUnaryOperator updateFunction) インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、更新された値を返します。final booleanweakCompareAndSet(int i, int expectedValue, int newValue) 非推奨。final booleanweakCompareAndSetAcquire(int i, int expectedValue, int newValue) 要素の現在の値== expectedValueがVarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果を持つ場合、索引iの要素をnewValueに原子的に設定できます。final booleanweakCompareAndSetPlain(int i, int expectedValue, int newValue) 要素の現在の値== expectedValueがVarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果を持つ場合、索引iの要素をnewValueに原子的に設定できます。final booleanweakCompareAndSetRelease(int i, int expectedValue, int newValue) 要素の現在の値== expectedValueがVarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果を持つ場合、索引iの要素をnewValueに原子的に設定できます。final booleanweakCompareAndSetVolatile(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の要素の現在の値を最初の引数として適用し、指定された更新を2番目の引数として適用します。- パラメータ:
i- インデックスx- 更新値accumulatorFunction- 2つの引数を取る、副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
accumulateAndGet
public final int accumulateAndGet(int i, int x, IntBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 この関数は、索引iの要素の現在の値を最初の引数として適用し、指定された更新を2番目の引数として適用します。- パラメータ:
i- インデックスx- 更新値accumulatorFunction- 2つの引数を取る、副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
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)などのメソッドを参照してください)を意味します。