クラス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 long
    accumulateAndGet(long x, LongBinaryOperator accumulatorFunction)
    VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して、現在の値を現在の値と指定された値に適用した結果とともに原子的に更新し、更新された値を返します。
    final long
    addAndGet(long delta)
    VarHandle.getAndAdd(Object...)で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。
    final long
    compareAndExchange(long expectedValue, long newValue)
    witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchange(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。
    final long
    compareAndExchangeAcquire(long expectedValue, long newValue)
    witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchangeAcquire(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。
    final long
    compareAndExchangeRelease(long expectedValue, long newValue)
    witness value (== expectedValue)と呼ばれる現在の値が、VarHandle.compareAndExchangeRelease(Object...)で指定されたメモリー効果を持つ場合に、アトミックに値をnewValueに設定します。
    final boolean
    compareAndSet(long expectedValue, long newValue)
    現在の値が== expectedValueの場合は、VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して、この値を原子的にnewValueに設定します。
    final long
    VarHandle.getAndAdd(Object...)で指定されたメモリー効果により、現在の値を原子的に減少させます。
    double
    拡大プリミティブ変換後のdoubleとして、VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を返します。
    float
    拡大プリミティブ変換後のfloatとして、VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を返します。
    final long
    get()
    VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、現在の値を返します。
    final long
    VarHandle.getAcquire(Object...)で指定されたメモリー効果を使用して、現在の値を返します。
    final long
    getAndAccumulate(long x, LongBinaryOperator accumulatorFunction)
    (VarHandle.compareAndSet(Object...)で指定されているメモリー効果を使用して)現在の値を、指定された関数を現在の値および指定された値に適用した結果とともに原子的に更新し、以前の値を返します。
    final long
    getAndAdd(long delta)
    VarHandle.getAndAdd(Object...)で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。
    final long
    VarHandle.getAndAdd(Object...)で指定されたメモリー効果により、現在の値を原子的に減少させます。
    final long
    VarHandle.getAndAdd(Object...)で指定されたメモリー効果で、現在の値を原子的に増分します。
    final long
    getAndSet(long newValue)
    原子的に値をnewValueに設定し、VarHandle.getAndSet(Object...)で指定されたメモリー効果で古い値を返します。
    final long
    (VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して)現在の値を、指定された関数を適用した結果とともに原子的に更新し、以前の値を返します。
    final long
    VarHandle.getOpaque(Object...)で指定されたメモリー効果を使用して、現在の値を返します。
    final long
    変数がvolatile以外と宣言されたかのように、読取りのメモリー・セマンティクスを使用して、現在の値を返します。
    final long
    VarHandle.getAndAdd(Object...)で指定されたメモリー効果で、現在の値を原子的に増分します。
    int
    VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値を、ナロー化プリミティブ変換後のintとして返します。
    final void
    lazySet(long newValue)
    VarHandle.setRelease(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。
    long
    VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、このAtomicLongの現在の値をlongとして返します。
    final void
    set(long newValue)
    VarHandle.setVolatile(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。
    final void
    setOpaque(long newValue)
    VarHandle.setOpaque(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。
    final void
    setPlain(long newValue)
    値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。
    final void
    setRelease(long newValue)
    VarHandle.setRelease(Object...)で指定されたメモリー効果を使用して、値をnewValueに設定します。
    現在値の文字列表記を返します。
    final long
    (VarHandle.compareAndSet(Object...)で指定されたメモリー効果を使用して)現在の値を、指定された関数を適用した結果とともに原子的に更新し、更新された値を返します。
    final boolean
    weakCompareAndSet(long expectedValue, long newValue)
    非推奨。
    このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(long, long)compareAndSet(long, long)などのメソッドを参照してください)を意味します。
    final boolean
    weakCompareAndSetAcquire(long expectedValue, long newValue)
    現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。
    final boolean
    weakCompareAndSetPlain(long expectedValue, long newValue)
    現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。
    final boolean
    weakCompareAndSetRelease(long expectedValue, long newValue)
    現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。
    final boolean
    weakCompareAndSetVolatile(long expectedValue, long newValue)
    現在の値が== expectedValueの場合は、VarHandle.weakCompareAndSet(Object...)で指定されたメモリー効果で、アトミックに値がnewValueに設定される可能性があります。

    クラス Numberで宣言されたメソッド

    byteValue, shortValue
    修飾子と型
    メソッド
    説明
    byte
    指定された数値の値をbyteとして返します。
    short
    指定された数値の値をshortとして返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • AtomicLong

      public AtomicLong(long initialValue)
      指定された初期パラメータを使って、新しいAtomicLongを作成します。
      パラメータ:
      initialValue - 初期値
    • AtomicLong

      public AtomicLong()
      初期値0を使って、新しいAtomicLongを作成します。
  • メソッドの詳細

    • get

      public final long get()
      VarHandle.getVolatile(Object...)で指定されたメモリー効果を使用して、現在の値を返します。
      戻り値:
      現行値
    • 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 - 新しい値
      戻り値:
      成功した場合はtrue falseは、実際の値が予想される値と等価ではないことを示す。
    • 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

      public String toString()
      現在値の文字列表記を返します。
      オーバーライド:
      toString、クラスObject
      戻り値:
      現在値の文字列表現。
    • 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()と同等です。
      定義:
      longValue、クラスNumber
      戻り値:
      このオブジェクトが表す数値をlong型に変換した値。
    • 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