java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicLong
- すべての実装されたインタフェース:
- Serializable
public class AtomicLong extends Number implements Serializable
原子的な更新が可能な
long値です。 アトミック・アクセスのプロパティについては、VarHandle仕様を参照してください。 AtomicLongは、原子的に増分されるシーケンス番号などのアプリケーションで使用されます。これをLongの代替として使用することはできません。 ただし、このクラスはNumberを拡張して、数値ベースのクラスを処理するツールやユーティリティによる単一的なアクセスを許可します。 - 導入されたバージョン:
- 1.5
- 関連項目:
- 直列化された形式
- 
コンストラクタのサマリーコンストラクタ コンストラクタ 説明 AtomicLong()初期値0を使って、新しいAtomicLongを作成します。AtomicLong(long initialValue)指定された初期パラメータを使って、新しいAtomicLongを作成します。
- 
メソッドのサマリー修飾子と型 メソッド 説明 longaccumulateAndGet(long x, LongBinaryOperator accumulatorFunction)現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。longaddAndGet(long delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。longcompareAndExchange(long expectedValue, long newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果が適用されます。longcompareAndExchangeAcquire(long expectedValue, long newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。longcompareAndExchangeRelease(long expectedValue, long newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。booleancompareAndSet(long expectedValue, long newValue)現在の値== expectedValueがnewValueに値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果があります。longdecrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。doubledoubleValue()AtomicLongの現在の値をdoubleとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。floatfloatValue()AtomicLongの現在の値をfloatとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。longget()VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。longgetAcquire()VarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。longgetAndAccumulate(long x, LongBinaryOperator accumulatorFunction)現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。longgetAndAdd(long delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。longgetAndDecrement()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。longgetAndIncrement()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。longgetAndSet(long newValue)この値を原子的にnewValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果で古い値を返します。longgetAndUpdate(LongUnaryOperator updateFunction)指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。longgetOpaque()VarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。longgetPlain()変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持つ現在の値を返します。longincrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。intintValue()このAtomicLongの現在の値をintとして、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ、縮小プリミティブ変換後に返します。voidlazySet(long newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。longlongValue()このAtomicLongの現在の値をlongとして返します。VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。voidset(long newValue)値をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。voidsetOpaque(long newValue)値をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。voidsetPlain(long newValue)値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。voidsetRelease(long newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。StringtoString()現在値の文字列表記を返します。longupdateAndGet(LongUnaryOperator updateFunction)指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。booleanweakCompareAndSet(long expectedValue, long newValue)Deprecated.このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(long, long)やcompareAndSet(long, long)などのメソッドを参照してください)を意味します。booleanweakCompareAndSetAcquire(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。booleanweakCompareAndSetPlain(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。booleanweakCompareAndSetRelease(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。booleanweakCompareAndSetVolatile(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果が適用されます。
- 
コンストラクタの詳細- 
AtomicLongpublic AtomicLong(long initialValue)指定された初期パラメータを使って、新しいAtomicLongを作成します。- パラメータ:
- initialValue- 初期値
 
- 
AtomicLongpublic AtomicLong()初期値0を使って、新しいAtomicLongを作成します。
 
- 
- 
メソッドの詳細- 
getpublic final long get()VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 現行値
 
- 
setpublic final void set(long newValue)値をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- newValue- 新しい値
 
- 
lazySetpublic final void lazySet(long newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- newValue- 新しい値
- 導入されたバージョン:
- 1.6
 
- 
getAndSetpublic final long getAndSet(long newValue)この値を原子的にnewValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果で古い値を返します。- パラメータ:
- newValue- 新しい値
- 戻り値:
- 前の値
 
- 
compareAndSetpublic final boolean compareAndSet(long expectedValue, long newValue)現在の値== expectedValueがnewValueに値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果があります。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtruefalseは、実際の値が予想される値と等価ではないことを示す。
 
- 
weakCompareAndSet@Deprecated(since="9")public final boolean weakCompareAndSet(long expectedValue, long newValue)Deprecated.このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(long, long)やcompareAndSet(long, long)などのメソッドを参照してください)を意味します。 プレーンまたは揮発性メモリー効果の混乱を避けるために、代わりにweakCompareAndSetPlain(long, long)メソッドを使用することをお勧めします。おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 関連項目:
- weakCompareAndSetPlain(long, long)
 
- 
weakCompareAndSetPlainpublic final boolean weakCompareAndSetPlain(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
- 
getAndIncrementpublic final long getAndIncrement()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。getAndAdd(1)と等価です。- 戻り値:
- 前の値
 
- 
getAndDecrementpublic final long getAndDecrement()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。getAndAdd(-1)と等価です。- 戻り値:
- 前の値
 
- 
getAndAddpublic final long getAndAdd(long delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。- パラメータ:
- delta- 追加する値
- 戻り値:
- 前の値
 
- 
incrementAndGetpublic final long incrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。addAndGet(1)と等価です。- 戻り値:
- 更新された値
 
- 
decrementAndGetpublic final long decrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。addAndGet(-1)と等価です。- 戻り値:
- 更新された値
 
- 
addAndGetpublic final long addAndGet(long delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。- パラメータ:
- delta- 追加する値
- 戻り値:
- 更新された値
 
- 
getAndUpdatepublic final long getAndUpdate(LongUnaryOperator updateFunction)指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
- updateFunction- 副作用のない関数
- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
 
- 
updateAndGetpublic final long updateAndGet(LongUnaryOperator updateFunction)指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
- updateFunction- 副作用のない関数
- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
 
- 
getAndAccumulatepublic final long getAndAccumulate(long x, LongBinaryOperator accumulatorFunction)現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
- x- 更新値
- accumulatorFunction- 2つの引数を取る、副作用のない関数
- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
 
- 
accumulateAndGetpublic final long accumulateAndGet(long x, LongBinaryOperator accumulatorFunction)現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
- x- 更新値
- accumulatorFunction- 2つの引数を取る、副作用のない関数
- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
 
- 
toStringpublic String toString()現在値の文字列表記を返します。
- 
intValuepublic int intValue()このAtomicLongの現在の値をintとして、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ、縮小プリミティブ変換後に返します。- 定義:
- intValue、クラス:- Number
- 戻り値:
- このオブジェクトが表す数値をint型に変換した値。
- Java言語仕様を参照してください:
- 
5.1.3 プリミティブ・コンバージョンの解説 
 
- 
longValuepublic long longValue()このAtomicLongの現在の値をlongとして返します。VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。get()と等価です。
- 
floatValuepublic float floatValue()AtomicLongの現在の値をfloatとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。- 定義:
- floatValue、クラス:- Number
- 戻り値:
- このオブジェクトが表す数値をfloat型に変換した値。
- Java言語仕様を参照してください:
- 
5.1.2 プリミティブ変換の強化 
 
- 
doubleValuepublic double doubleValue()AtomicLongの現在の値をdoubleとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。- 定義:
- doubleValue、クラス:- Number
- 戻り値:
- このオブジェクトが表す数値をdouble型に変換した値。
- Java言語仕様を参照してください:
- 
5.1.2 プリミティブ変換の強化 
 
- 
getPlainpublic final long getPlain()変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
 
- 
setPlainpublic final void setPlain(long newValue)値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。- パラメータ:
- newValue- 新しい値
- 導入されたバージョン:
- 9
 
- 
getOpaquepublic final long getOpaque()VarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
 
- 
setOpaquepublic final void setOpaque(long newValue)値をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- newValue- 新しい値
- 導入されたバージョン:
- 9
 
- 
getAcquirepublic final long getAcquire()VarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
 
- 
setReleasepublic final void setRelease(long newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
- newValue- 新しい値
- 導入されたバージョン:
- 9
 
- 
compareAndExchangepublic final long compareAndExchange(long expectedValue, long newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
 
- 
compareAndExchangeAcquirepublic final long compareAndExchangeAcquire(long expectedValue, long newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
 
- 
compareAndExchangeReleasepublic final long compareAndExchangeRelease(long expectedValue, long newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
 
- 
weakCompareAndSetVolatilepublic final boolean weakCompareAndSetVolatile(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
- 
weakCompareAndSetAcquirepublic final boolean weakCompareAndSetAcquire(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
- 
weakCompareAndSetReleasepublic final boolean weakCompareAndSetRelease(long expectedValue, long newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
- expectedValue- 期待値
- newValue- 新しい値
- 戻り値:
- 成功した場合はtrue
- 導入されたバージョン:
- 9
 
 
-