クラスAtomicLong
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
- 関連項目:
-
コンストラクタのサマリー
コンストラクタコンストラクタ説明初期値0を使って、新しいAtomicLongを作成します。AtomicLong(long initialValue) 指定された初期パラメータを使って、新しいAtomicLongを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明final longaccumulateAndGet(long x, LongBinaryOperator accumulatorFunction) VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して、現在の値を現在の値と指定された値に適用した結果とともに原子的に更新し、更新された値を返します。final longaddAndGet(long delta) VarHandle.getAndAdd(Object...)で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。final longcompareAndExchange(long expectedValue, long newValue) witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchange(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。final longcompareAndExchangeAcquire(long expectedValue, long newValue) witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchangeAcquire(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。final longcompareAndExchangeRelease(long expectedValue, long newValue) witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchangeRelease(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。final booleancompareAndSet(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して、この値を原子的にnewValueに設定します。final longVarHandle.getAndAdd(Object...)で指定されたメモリー効果により、現在の値を原子的に減少させます。double拡大プリミティブ変換後のdoubleとして、VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を返します。float拡大プリミティブ変換後のfloatとして、VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を返します。final longget()VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、現在の値を返します。final longVarHandle.getAcquire(Object...)で指定されたメモリー効果を使用して、現在の値を返します。final longgetAndAccumulate(long x, LongBinaryOperator accumulatorFunction) (VarHandle.compareAndSet(Object...)で指定されているメモリー効果を使用して)現在の値を、指定された関数を現在の値および指定された値に適用した結果とともに原子的に更新し、以前の値を返します。final longgetAndAdd(long delta) VarHandle.getAndAdd(Object...)で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。final longVarHandle.getAndAdd(Object...)で指定されたメモリー効果により、現在の値を原子的に減少させます。final longVarHandle.getAndAdd(Object...)で指定されたメモリー効果で、現在の値を原子的に増分します。final longgetAndSet(long newValue) 原子的に値をnewValueに設定し、VarHandle.getAndSet(Object...)で指定されたメモリー効果で古い値を返します。final longgetAndUpdate(LongUnaryOperator updateFunction) (VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して)現在の値を、指定された関数を適用した結果とともに原子的に更新し、以前の値を返します。final longVarHandle.getOpaque(Object...)で指定されたメモリー効果を使用して、現在の値を返します。final longgetPlain()変数がvolatile以外と宣言されたかのように、読取りのメモリー・セマンティクスを使用して、現在の値を返します。final longVarHandle.getAndAdd(Object...)で指定されたメモリー効果で、現在の値を原子的に増分します。intintValue()VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を、ナロー化プリミティブ変換後のintとして返します。final voidlazySet(long newValue) VarHandle.setRelease(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。longVarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値をlongとして返します。final voidset(long newValue) VarHandle.setVolatile(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。final voidsetOpaque(long newValue) VarHandle.setOpaque(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。final voidsetPlain(long newValue) 値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。final voidsetRelease(long newValue) VarHandle.setRelease(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。toString()現在値の文字列表記を返します。final longupdateAndGet(LongUnaryOperator updateFunction) (VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して)現在の値を、指定された関数を適用した結果とともに原子的に更新し、更新された値を返します。final booleanweakCompareAndSet(long expectedValue, long newValue) 非推奨。final booleanweakCompareAndSetAcquire(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。final booleanweakCompareAndSetPlain(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。final booleanweakCompareAndSetRelease(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。final booleanweakCompareAndSetVolatile(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSet(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。クラス Numberで宣言されたメソッド
byteValue, shortValue
-
コンストラクタの詳細
-
AtomicLong
public AtomicLong(long initialValue) 指定された初期パラメータを使って、新しいAtomicLongを作成します。- パラメータ:
initialValue- 初期値
-
AtomicLong
public AtomicLong()初期値0を使って、新しいAtomicLongを作成します。
-
-
メソッドの詳細
-
get
-
set
public final void set(long newValue) VarHandle.setVolatile(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。- パラメータ:
newValue- 新しい値
-
lazySet
public final void lazySet(long newValue) VarHandle.setRelease(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 1.6
-
getAndSet
public final long getAndSet(long newValue) 原子的に値をnewValueに設定し、VarHandle.getAndSet(Object...)で指定されたメモリー効果で古い値を返します。- パラメータ:
newValue- 新しい値- 戻り値:
- 前の値
-
compareAndSet
public final boolean compareAndSet(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して、この値を原子的にnewValueに設定します。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
truefalseは、実際の値が予想される値と等価ではないことを示す。
-
weakCompareAndSet
@Deprecated(since="9") public final boolean weakCompareAndSet(long expectedValue, long newValue) 非推奨。このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(long, long)やcompareAndSet(long, long)などのメソッドを参照してください)を意味します。 プレーンまたは揮発性メモリー効果の混乱を避けるために、代わりにweakCompareAndSetPlain(long, long)メソッドを使用することをお勧めします。現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 関連項目:
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
getAndIncrement
public final long getAndIncrement()VarHandle.getAndAdd(Object...)で指定されたメモリー効果で、現在の値を原子的に増分します。getAndAdd(1)と等価です。- 戻り値:
- 前の値
-
getAndDecrement
public final long getAndDecrement()VarHandle.getAndAdd(Object...)で指定されたメモリー効果により、現在の値を原子的に減少させます。getAndAdd(-1)と等価です。- 戻り値:
- 前の値
-
getAndAdd
public final long getAndAdd(long delta) VarHandle.getAndAdd(Object...)で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。- パラメータ:
delta- 追加する値- 戻り値:
- 前の値
-
incrementAndGet
public final long incrementAndGet()VarHandle.getAndAdd(Object...)で指定されたメモリー効果で、現在の値を原子的に増分します。addAndGet(1)と等価です。- 戻り値:
- 更新された値
-
decrementAndGet
public final long decrementAndGet()VarHandle.getAndAdd(Object...)で指定されたメモリー効果により、現在の値を原子的に減少させます。addAndGet(-1)と等価です。- 戻り値:
- 更新された値
-
addAndGet
public final long addAndGet(long delta) VarHandle.getAndAdd(Object...)で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。- パラメータ:
delta- 追加する値- 戻り値:
- 更新された値
-
getAndUpdate
public final long getAndUpdate(LongUnaryOperator updateFunction) (VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して)現在の値を、指定された関数を適用した結果とともに原子的に更新し、以前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
updateFunction- 副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
updateAndGet
public final long updateAndGet(LongUnaryOperator updateFunction) (VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して)現在の値を、指定された関数を適用した結果とともに原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
updateFunction- 副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
getAndAccumulate
public final long getAndAccumulate(long x, LongBinaryOperator accumulatorFunction) (VarHandle.compareAndSet(Object...)で指定されているメモリー効果を使用して)現在の値を、指定された関数を現在の値および指定された値に適用した結果とともに原子的に更新し、以前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
x- 更新値accumulatorFunction- 2つの引数を取る、副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
accumulateAndGet
public final long accumulateAndGet(long x, LongBinaryOperator accumulatorFunction) VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して、現在の値を現在の値と指定された値に適用した結果とともに原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
x- 更新値accumulatorFunction- 2つの引数を取る、副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
toString
-
intValue
public int intValue()VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を、ナロー化プリミティブ変換後のintとして返します。- 定義:
intValue、クラスNumber- 戻り値:
- このオブジェクトが表す数値を
int型に変換した値。 - Java言語仕様を参照してください:
-
5.1.3 プリミティブ・コンバージョンの解説
-
longValue
public long longValue()VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値をlongとして返します。get()と同等です。 -
floatValue
public float floatValue()拡大プリミティブ変換後のfloatとして、VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を返します。- 定義:
floatValue、クラスNumber- 戻り値:
- このオブジェクトが表す数値を
float型に変換した値。 - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
doubleValue
public double doubleValue()拡大プリミティブ変換後のdoubleとして、VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を返します。- 定義:
doubleValue、クラスNumber- 戻り値:
- このオブジェクトが表す数値を
double型に変換した値。 - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
getPlain
public final long getPlain()変数がvolatile以外と宣言されたかのように、読取りのメモリー・セマンティクスを使用して、現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setPlain
public final void setPlain(long newValue) 値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 9
-
getOpaque
public final long getOpaque()VarHandle.getOpaque(Object...)で指定されたメモリー効果を使用して、現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setOpaque
public final void setOpaque(long newValue) VarHandle.setOpaque(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 9
-
getAcquire
public final long getAcquire()VarHandle.getAcquire(Object...)で指定されたメモリー効果を使用して、現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setRelease
public final void setRelease(long newValue) VarHandle.setRelease(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 9
-
compareAndExchange
public final long compareAndExchange(long expectedValue, long newValue) witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchange(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合に必要な値と同じになる「証人の価値」
- 導入されたバージョン:
- 9
-
compareAndExchangeAcquire
public final long compareAndExchangeAcquire(long expectedValue, long newValue) witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchangeAcquire(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合に必要な値と同じになる「証人の価値」
- 導入されたバージョン:
- 9
-
compareAndExchangeRelease
public final long compareAndExchangeRelease(long expectedValue, long newValue) witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchangeRelease(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合に必要な値と同じになる「証人の価値」
- 導入されたバージョン:
- 9
-
weakCompareAndSetVolatile
public final boolean weakCompareAndSetVolatile(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSet(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(long expectedValue, long newValue) 現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
compareAndExchange(long, long)やcompareAndSet(long, long)などのメソッドを参照してください)を意味します。