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を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明long
accumulateAndGet(long x, LongBinaryOperator accumulatorFunction)
現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。long
addAndGet(long delta)
指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果を加えます。long
compareAndExchange(long expectedValue, long newValue)
「証人の価値」、== expectedValue
と呼ばれる現在の値がnewValue
に原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)
で指定されたメモリー効果が適用されます。long
compareAndExchangeAcquire(long expectedValue, long newValue)
「証人の価値」、== expectedValue
と呼ばれる現在の値がnewValue
に原子的に設定され、VarHandle.compareAndExchangeAcquire(java.lang.Object...)
で指定されたメモリー効果が適用されます。long
compareAndExchangeRelease(long expectedValue, long newValue)
「証人の価値」、== expectedValue
と呼ばれる現在の値がnewValue
に原子的に設定され、VarHandle.compareAndExchangeRelease(java.lang.Object...)
で指定されたメモリー効果が適用されます。boolean
compareAndSet(long expectedValue, long newValue)
現在の値== expectedValue
がnewValue
に値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)
で指定されたメモリー効果があります。long
VarHandle.getAndAdd(java.lang.Object...)
で指定されているメモリー効果で、現在の値を原子的にデクリメントします。double
AtomicLong
の現在の値をdouble
として返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果があります。float
AtomicLong
の現在の値をfloat
として返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果があります。long
get()
VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果を持つ現在の値を返します。long
VarHandle.getAcquire(java.lang.Object...)
で指定されたメモリー効果を持つ現在の値を返します。long
getAndAccumulate(long x, LongBinaryOperator accumulatorFunction)
現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。long
getAndAdd(long delta)
指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果を加えます。long
VarHandle.getAndAdd(java.lang.Object...)
で指定されているメモリー効果で、現在の値を原子的にデクリメントします。long
VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。long
getAndSet(long newValue)
この値を原子的にnewValue
に設定し、VarHandle.getAndSet(java.lang.Object...)
で指定されたメモリー効果で古い値を返します。long
getAndUpdate(LongUnaryOperator updateFunction)
指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。long
VarHandle.getOpaque(java.lang.Object...)
で指定されたメモリー効果を持つ現在の値を返します。long
getPlain()
変数が非volatile
と宣言されているかのように、読み込みのメモリー・セマンティクスを持つ現在の値を返します。long
VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。int
intValue()
このAtomicLong
の現在の値をint
として、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果を持つ、縮小プリミティブ変換後に返します。void
lazySet(long newValue)
値をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。long
このAtomicLong
の現在の値をlong
として返します。VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果があります。void
set(long newValue)
値をnewValue
に設定し、VarHandle.setVolatile(java.lang.Object...)
で指定されたメモリー効果を設定します。void
setOpaque(long newValue)
値をnewValue
に設定し、VarHandle.setOpaque(java.lang.Object...)
で指定されたメモリー効果を設定します。void
setPlain(long newValue)
値がnewValue
に設定され、変数が非volatile
および非final
として宣言されているかのように設定されたメモリー・セマンティクスが使用されます。void
setRelease(long newValue)
値をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。toString()
現在値の文字列表記を返します。long
updateAndGet(LongUnaryOperator updateFunction)
指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。boolean
weakCompareAndSet(long expectedValue, long newValue)
非推奨。boolean
weakCompareAndSetAcquire(long expectedValue, long newValue)
おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)
で指定されたメモリー効果が適用されます。boolean
weakCompareAndSetPlain(long expectedValue, long newValue)
おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)
で指定されたメモリー効果が適用されます。boolean
weakCompareAndSetRelease(long expectedValue, long newValue)
おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)
で指定されたメモリー効果が適用されます。boolean
weakCompareAndSetVolatile(long expectedValue, long newValue)
おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSet(java.lang.Object...)
で指定されたメモリー効果が適用されます。クラス java.lang.Numberで宣言されたメソッド
byteValue, shortValue
-
コンストラクタの詳細
-
AtomicLong
public AtomicLong(long initialValue)指定された初期パラメータを使って、新しいAtomicLongを作成します。- パラメータ:
initialValue
- 初期値
-
AtomicLong
public AtomicLong()初期値0
を使って、新しいAtomicLongを作成します。
-
-
メソッドの詳細
-
get
public final long get()VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 現行値
-
set
public final void set(long newValue)値をnewValue
に設定し、VarHandle.setVolatile(java.lang.Object...)
で指定されたメモリー効果を設定します。- パラメータ:
newValue
- 新しい値
-
lazySet
public final void lazySet(long newValue)値をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。- パラメータ:
newValue
- 新しい値- 導入されたバージョン:
- 1.6
-
getAndSet
public final long getAndSet(long newValue)この値を原子的にnewValue
に設定し、VarHandle.getAndSet(java.lang.Object...)
で指定されたメモリー効果で古い値を返します。- パラメータ:
newValue
- 新しい値- 戻り値:
- 前の値
-
compareAndSet
public final boolean compareAndSet(long expectedValue, long newValue)現在の値== expectedValue
がnewValue
に値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)
で指定されたメモリー効果があります。- パラメータ:
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)
メソッドを使用することをお勧めします。おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 関連項目:
weakCompareAndSetPlain(long, long)
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(long expectedValue, long newValue)おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
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)指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
updateFunction
- 副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
updateAndGet
public final long updateAndGet(LongUnaryOperator updateFunction)指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
updateFunction
- 副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
getAndAccumulate
public final long getAndAccumulate(long x, LongBinaryOperator accumulatorFunction)現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
x
- 更新値accumulatorFunction
- 2つの引数を取る、副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
accumulateAndGet
public final long accumulateAndGet(long x, LongBinaryOperator accumulatorFunction)現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
x
- 更新値accumulatorFunction
- 2つの引数を取る、副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
toString
public String toString()現在値の文字列表記を返します。 -
intValue
public int intValue()このAtomicLong
の現在の値をint
として、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果を持つ、縮小プリミティブ変換後に返します。- 定義:
intValue
、クラス:Number
- 戻り値:
- このオブジェクトが表す数値を
int
型に変換した値。 - Java言語仕様を参照してください:
-
5.1.3 プリミティブ・コンバージョンの解説
-
longValue
public long longValue()このAtomicLong
の現在の値をlong
として返します。VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果があります。get()
と等価です。 -
floatValue
public float floatValue()AtomicLong
の現在の値をfloat
として返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果があります。- 定義:
floatValue
、クラス:Number
- 戻り値:
- このオブジェクトが表す数値を
float
型に変換した値。 - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
doubleValue
public double doubleValue()AtomicLong
の現在の値をdouble
として返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果があります。- 定義:
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(java.lang.Object...)
で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setOpaque
public final void setOpaque(long newValue)値をnewValue
に設定し、VarHandle.setOpaque(java.lang.Object...)
で指定されたメモリー効果を設定します。- パラメータ:
newValue
- 新しい値- 導入されたバージョン:
- 9
-
getAcquire
public final long getAcquire()VarHandle.getAcquire(java.lang.Object...)
で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setRelease
public final void setRelease(long newValue)値をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。- パラメータ:
newValue
- 新しい値- 導入されたバージョン:
- 9
-
compareAndExchange
public final long compareAndExchange(long expectedValue, long newValue)「証人の価値」、== expectedValue
と呼ばれる現在の値がnewValue
に原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
-
compareAndExchangeAcquire
public final long compareAndExchangeAcquire(long expectedValue, long newValue)「証人の価値」、== expectedValue
と呼ばれる現在の値がnewValue
に原子的に設定され、VarHandle.compareAndExchangeAcquire(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
-
compareAndExchangeRelease
public final long compareAndExchangeRelease(long expectedValue, long newValue)「証人の価値」、== expectedValue
と呼ばれる現在の値がnewValue
に原子的に設定され、VarHandle.compareAndExchangeRelease(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
-
weakCompareAndSetVolatile
public final boolean weakCompareAndSetVolatile(long expectedValue, long newValue)おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSet(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 導入されたバージョン:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(long expectedValue, long newValue)おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 導入されたバージョン:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(long expectedValue, long newValue)おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)
で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合は
true
- 導入されたバージョン:
- 9
-
compareAndExchange(long, long)
やcompareAndSet(long, long)
などのメソッドを参照してください)を意味します。