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