java.lang.Object
java.util.concurrent.atomic.AtomicLongArray
- すべての実装されたインタフェース:
- Serializable
public class AtomicLongArray extends Object implements Serializable
要素の原子的な更新が可能な
long配列です。 アトミック・アクセスのプロパティについては、VarHandle仕様を参照してください。 - 導入されたバージョン:
- 1.5
- 関連項目:
- 
コンストラクタのサマリーコンストラクタコンストラクタ説明AtomicLongArray(int length) 指定された長さの新しいAtomicLongArrayを作成し、すべての要素はゼロに初期化されます。AtomicLongArray(long[] array) 指定された配列と同じ長さのAtomicLongArrayを新しく作成します。すべての要素は、指定された配列からコピーされます。
- 
メソッドのサマリー修飾子と型メソッド説明final longaccumulateAndGet(int i, long x, LongBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。longaddAndGet(int i, long delta) 指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final longcompareAndExchange(int i, long expectedValue, long newValue) 要素の現在値(「証人の価値」、== expectedValueと呼ばれ、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。final longcompareAndExchangeAcquire(int i, long expectedValue, long newValue) 要素の現在値(「証人の価値」、== expectedValueと呼ばれ、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。final longcompareAndExchangeRelease(int i, long expectedValue, long newValue) 要素の現在値(「証人の価値」、== expectedValueと呼ばれ、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。final booleancompareAndSet(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合、要素iの要素を原子的にnewValueに原子的に設定します。final longdecrementAndGet(int i) インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final longget(int i) インデックスiの要素の現在の値をVarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果で返します。final longgetAcquire(int i) インデックスiの要素の現在の値をVarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果で返します。final longgetAndAccumulate(int i, long x, LongBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と与えられた値に適用した結果を原子的に更新し、前の値を返します。final longgetAndAdd(int i, long delta) 指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final longgetAndDecrement(int i) インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final longgetAndIncrement(int i) インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final longgetAndSet(int i, long newValue) インデックスiの要素を原子的にnewValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果を持つ古い値を返します。final longgetAndUpdate(int i, LongUnaryOperator updateFunction) インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、前の値を返します。final longgetOpaque(int i) インデックスiの要素の現在の値をVarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果で返します。final longgetPlain(int i) インデックスiにある要素の現在の値を返します。変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持ちます。final longincrementAndGet(int i) インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。final voidlazySet(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。final intlength()配列の長さを返します。final voidset(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。final voidsetOpaque(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。final voidsetPlain(int i, long newValue) インデックスiの要素をnewValueに設定し、変数が非volatileおよび非finalとして宣言されているかのように設定するメモリー・セマンティクスを設定します。final voidsetRelease(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。toString()配列の現在値の文字列表現を返します。final longupdateAndGet(int i, LongUnaryOperator updateFunction) インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、更新された値を返します。final booleanweakCompareAndSet(int i, long expectedValue, long newValue) 非推奨。final booleanweakCompareAndSetAcquire(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。final booleanweakCompareAndSetPlain(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。final booleanweakCompareAndSetRelease(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。final booleanweakCompareAndSetVolatile(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。
- 
コンストラクタの詳細- 
AtomicLongArraypublic AtomicLongArray(int length) 指定された長さの新しいAtomicLongArrayを作成し、すべての要素はゼロに初期化されます。- パラメータ:
- length- 配列の長さ
 
- 
AtomicLongArraypublic AtomicLongArray(long[] array) 指定された配列と同じ長さのAtomicLongArrayを新しく作成します。すべての要素は、指定された配列からコピーされます。- パラメータ:
- array- 要素のコピー元の配列
- 例外:
- NullPointerException- 配列がnullの場合
 
 
- 
- 
メソッドの詳細- 
lengthpublic final int length()配列の長さを返します。- 戻り値:
- 配列の長さ
 
- 
getpublic final long get(int i) インデックスiの要素の現在の値をVarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果で返します。- パラメータ:
- i- インデックス
- 戻り値:
- 現行値
 
- 
setpublic final void set(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- i- インデックス
- newValue- 新しい値
 
- 
lazySetpublic final void lazySet(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- i- インデックス
- newValue- 新しい値
- 導入されたバージョン:
- 1.6
 
- 
getAndSetpublic final long getAndSet(int i, long newValue) インデックスiの要素を原子的にnewValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果を持つ古い値を返します。- パラメータ:
- i- インデックス
- newValue- 新しい値
- 戻り値:
- 前の値
 
- 
compareAndSetpublic final boolean compareAndSet(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合、要素iの要素を原子的にnewValueに原子的に設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功する場合はtrue。 falseは、実際の値が予想される値と等価ではないことを示す。
 
- 
weakCompareAndSet@Deprecated(since="9") public final boolean weakCompareAndSet(int i, long expectedValue, long newValue) 非推奨。このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(int, long, long)やcompareAndSet(int, long, long)などのメソッドを参照してください)を意味します。 プレーンまたは揮発性メモリー効果の混乱を避けるために、代わりにweakCompareAndSetPlain(int, long, long)メソッドを使用することをお勧めします。要素の現在値== expectedValueがVarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 関連項目:
 
- 
weakCompareAndSetPlainpublic final boolean weakCompareAndSetPlain(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
- 
getAndIncrementpublic final long getAndIncrement(int i) インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。getAndAdd(i, 1)と等価です。- パラメータ:
- i- インデックス
- 戻り値:
- 前の値
 
- 
getAndDecrementpublic final long getAndDecrement(int i) インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。getAndAdd(i, -1)と等価です。- パラメータ:
- i- インデックス
- 戻り値:
- 前の値
 
- 
getAndAddpublic final long getAndAdd(int i, long delta) 指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- i- インデックス
- delta- 追加する値
- 戻り値:
- 前の値
 
- 
incrementAndGetpublic final long incrementAndGet(int i) インデックスiの要素の値を原子的にインクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。addAndGet(i, 1)と等価です。- パラメータ:
- i- インデックス
- 戻り値:
- 更新された値
 
- 
decrementAndGetpublic final long decrementAndGet(int i) インデックスiの要素の値を原子的にデクリメントします。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。addAndGet(i, -1)と等価です。- パラメータ:
- i- インデックス
- 戻り値:
- 更新された値
 
- 
addAndGetpublic long addAndGet(int i, long delta) 指定された値をインデックスiの要素に原子的に追加します。VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- i- インデックス
- delta- 追加する値
- 戻り値:
- 更新された値
 
- 
getAndUpdatepublic final long getAndUpdate(int i, LongUnaryOperator updateFunction) インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
- i- インデックス
- updateFunction- 副作用のない関数
- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
 
- 
updateAndGetpublic final long updateAndGet(int i, LongUnaryOperator updateFunction) インデックスiの要素を、指定された関数を適用した結果に原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
- i- インデックス
- updateFunction- 副作用のない関数
- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
 
- 
getAndAccumulatepublic final long getAndAccumulate(int i, long x, LongBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と与えられた値に適用した結果を原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、その最初の引数としてインデックスにある要素の電流値i、及び第二引数として与えられた更新に適用されます。- パラメータ:
- i- インデックス
- x- 更新値
- accumulatorFunction- 2つの引数を取る、副作用のない関数
- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
 
- 
accumulateAndGetpublic final long accumulateAndGet(int i, long x, LongBinaryOperator accumulatorFunction) インデックスiの要素を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、その最初の引数としてインデックスにある要素の電流値i、及び第二引数として与えられた更新に適用されます。- パラメータ:
- i- インデックス
- x- 更新値
- accumulatorFunction- 2つの引数を取る、副作用のない関数
- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
 
- 
toStringpublic String toString()配列の現在値の文字列表現を返します。
- 
getPlainpublic final long getPlain(int i) インデックスiにある要素の現在の値を返します。変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持ちます。- パラメータ:
- i- インデックス
- 戻り値:
- 値
- 導入されたバージョン:
- 9
 
- 
setPlainpublic final void setPlain(int i, long newValue) インデックスiの要素をnewValueに設定し、変数が非volatileおよび非finalとして宣言されているかのように設定するメモリー・セマンティクスを設定します。- パラメータ:
- i- インデックス
- newValue- 新しい値
- 導入されたバージョン:
- 9
 
- 
getOpaquepublic final long getOpaque(int i) インデックスiの要素の現在の値をVarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果で返します。- パラメータ:
- i- インデックス
- 戻り値:
- 値
- 導入されたバージョン:
- 9
 
- 
setOpaquepublic final void setOpaque(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- i- インデックス
- newValue- 新しい値
- 導入されたバージョン:
- 9
 
- 
getAcquirepublic final long getAcquire(int i) インデックスiの要素の現在の値をVarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果で返します。- パラメータ:
- i- インデックス
- 戻り値:
- 値
- 導入されたバージョン:
- 9
 
- 
setReleasepublic final void setRelease(int i, long newValue) iの要素をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- i- インデックス
- newValue- 新しい値
- 導入されたバージョン:
- 9
 
- 
compareAndExchangepublic final long compareAndExchange(int i, long expectedValue, long newValue) 要素の現在値(「証人の価値」、== expectedValueと呼ばれ、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
 
- 
compareAndExchangeAcquirepublic final long compareAndExchangeAcquire(int i, long expectedValue, long newValue) 要素の現在値(「証人の価値」、== expectedValueと呼ばれ、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
 
- 
compareAndExchangeReleasepublic final long compareAndExchangeRelease(int i, long expectedValue, long newValue) 要素の現在値(「証人の価値」、== expectedValueと呼ばれ、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果を持つ要素)があれば、要素iの要素をnewValueに原子的に設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
 
- 
weakCompareAndSetVolatilepublic final boolean weakCompareAndSetVolatile(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
- 
weakCompareAndSetAcquirepublic final boolean weakCompareAndSetAcquire(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
- 
weakCompareAndSetReleasepublic final boolean weakCompareAndSetRelease(int i, long expectedValue, long newValue) 要素の現在値== expectedValueがVarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果を持つ場合、インデックスiの要素をnewValueに原子的にアトミックに設定します。- パラメータ:
- i- インデックス
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
 
- 
compareAndExchange(int, long, long)やcompareAndSet(int, long, long)などのメソッドを参照してください)を意味します。