java.lang.Object
java.lang.Number
java.util.concurrent.atomic.AtomicInteger
- すべての実装されたインタフェース:
Serializable
public class AtomicInteger extends Number implements Serializable
原子的な更新が可能な
int値です。 アトミック・アクセスのプロパティについては、VarHandle仕様を参照してください。 AtomicIntegerは、原子的に増分されるカウンタなどのアプリケーションで使用されます。これをIntegerの代替として使用することはできません。 ただし、このクラスはNumberを拡張して、数値ベースのクラスを処理するツールやユーティリティによる単一的なアクセスを許可します。 - 導入されたバージョン:
- 1.5
- 関連項目:
- 直列化された形式
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 AtomicInteger()初期値0を使って、新しいAtomicIntegerを作成します。AtomicInteger(int initialValue)指定された初期パラメータを使って、新しいAtomicIntegerを作成します。 -
メソッドのサマリー
修飾子と型 メソッド 説明 intaccumulateAndGet(int x, IntBinaryOperator accumulatorFunction)現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。intaddAndGet(int delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。intcompareAndExchange(int expectedValue, int newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果が適用されます。intcompareAndExchangeAcquire(int expectedValue, int newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。intcompareAndExchangeRelease(int expectedValue, int newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。booleancompareAndSet(int expectedValue, int newValue)現在の値== expectedValueがnewValueに値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果があります。intdecrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。doubledoubleValue()AtomicIntegerの現在の値をdoubleとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。floatfloatValue()AtomicIntegerの現在の値をfloatとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。intget()VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。intgetAcquire()VarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。intgetAndAccumulate(int x, IntBinaryOperator accumulatorFunction)現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。intgetAndAdd(int delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。intgetAndDecrement()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。intgetAndIncrement()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。intgetAndSet(int newValue)この値を原子的にnewValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果で古い値を返します。intgetAndUpdate(IntUnaryOperator updateFunction)指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。intgetOpaque()VarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。intgetPlain()変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持つ現在の値を返します。intincrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。intintValue()このAtomicIntegerの現在の値をintとして返し、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を返します。voidlazySet(int newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。longlongValue()AtomicIntegerの現在の値をlongとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。voidset(int newValue)値をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。voidsetOpaque(int newValue)値をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。voidsetPlain(int newValue)値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。voidsetRelease(int newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。StringtoString()現在値の文字列表記を返します。intupdateAndGet(IntUnaryOperator updateFunction)指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。booleanweakCompareAndSet(int expectedValue, int newValue)非推奨。このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(int, int)やcompareAndSet(int, int)などのメソッドを参照してください)を意味します。booleanweakCompareAndSetAcquire(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。booleanweakCompareAndSetPlain(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。booleanweakCompareAndSetRelease(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。booleanweakCompareAndSetVolatile(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果が適用されます。
-
コンストラクタの詳細
-
AtomicInteger
public AtomicInteger(int initialValue)指定された初期パラメータを使って、新しいAtomicIntegerを作成します。- パラメータ:
initialValue- 初期値
-
AtomicInteger
public AtomicInteger()初期値0を使って、新しいAtomicIntegerを作成します。
-
-
メソッドの詳細
-
get
public final int get()VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 現行値
-
set
public final void set(int newValue)値をnewValueに設定し、VarHandle.setVolatile(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
newValue- 新しい値
-
lazySet
public final void lazySet(int newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 1.6
-
getAndSet
public final int getAndSet(int newValue)この値を原子的にnewValueに設定し、VarHandle.getAndSet(java.lang.Object...)で指定されたメモリー効果で古い値を返します。- パラメータ:
newValue- 新しい値- 戻り値:
- 前の値
-
compareAndSet
public final boolean compareAndSet(int expectedValue, int newValue)現在の値== expectedValueがnewValueに値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)で指定されたメモリー効果があります。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
truefalseは、実際の値が予想される値と等価ではないことを示す。
-
weakCompareAndSet
@Deprecated(since="9")public final boolean weakCompareAndSet(int expectedValue, int newValue)非推奨。このメソッドは単純なメモリー効果を持ちますが、メソッド名は揮発性メモリー効果(compareAndExchange(int, int)やcompareAndSet(int, int)などのメソッドを参照してください)を意味します。 プレーンまたは揮発性メモリー効果の混乱を避けるために、代わりにweakCompareAndSetPlain(int, int)メソッドを使用することをお勧めします。おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 関連項目:
weakCompareAndSetPlain(int, int)
-
weakCompareAndSetPlain
public final boolean weakCompareAndSetPlain(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
getAndIncrement
public final int getAndIncrement()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。getAndAdd(1)と等価です。- 戻り値:
- 前の値
-
getAndDecrement
public final int getAndDecrement()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。getAndAdd(-1)と等価です。- 戻り値:
- 前の値
-
getAndAdd
public final int getAndAdd(int delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。- パラメータ:
delta- 追加する値- 戻り値:
- 前の値
-
incrementAndGet
public final int incrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を使用して、現在の値を原子的にインクリメントします。addAndGet(1)と等価です。- 戻り値:
- 更新された値
-
decrementAndGet
public final int decrementAndGet()VarHandle.getAndAdd(java.lang.Object...)で指定されているメモリー効果で、現在の値を原子的にデクリメントします。addAndGet(-1)と等価です。- 戻り値:
- 更新された値
-
addAndGet
public final int addAndGet(int delta)指定された値を現在の値に原子的に追加し、VarHandle.getAndAdd(java.lang.Object...)で指定されたメモリー効果を加えます。- パラメータ:
delta- 追加する値- 戻り値:
- 更新された値
-
getAndUpdate
public final int getAndUpdate(IntUnaryOperator updateFunction)指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
updateFunction- 副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
updateAndGet
public final int updateAndGet(IntUnaryOperator updateFunction)指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。- パラメータ:
updateFunction- 副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
getAndAccumulate
public final int getAndAccumulate(int x, IntBinaryOperator accumulatorFunction)現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
x- 更新値accumulatorFunction- 2つの引数を取る、副作用のない関数- 戻り値:
- 前の値
- 導入されたバージョン:
- 1.8
-
accumulateAndGet
public final int accumulateAndGet(int x, IntBinaryOperator accumulatorFunction)現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。 関数は、試行した更新がスレッド間の競合のため失敗したときに再度適用される可能性があるため、副作用を持つべきではありません。 関数は、現在の値を第1引数とし、指定された更新値を第2引数として適用されます。- パラメータ:
x- 更新値accumulatorFunction- 2つの引数を取る、副作用のない関数- 戻り値:
- 更新された値
- 導入されたバージョン:
- 1.8
-
toString
public String toString()現在値の文字列表記を返します。 -
intValue
public int intValue()このAtomicIntegerの現在の値をintとして返し、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果を返します。get()と等価です。 -
longValue
public long longValue()AtomicIntegerの現在の値をlongとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。- 定義:
longValue、クラス:Number- 戻り値:
- このオブジェクトが表す数値を
long型に変換した値。 - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
floatValue
public float floatValue()AtomicIntegerの現在の値をfloatとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。- 定義:
floatValue、クラス:Number- 戻り値:
- このオブジェクトが表す数値を
float型に変換した値。 - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
doubleValue
public double doubleValue()AtomicIntegerの現在の値をdoubleとして返します。拡張されたプリミティブ変換の後に、VarHandle.getVolatile(java.lang.Object...)で指定されたメモリー効果があります。- 定義:
doubleValue、クラス:Number- 戻り値:
- このオブジェクトが表す数値を
double型に変換した値。 - Java言語仕様を参照してください:
-
5.1.2 プリミティブ変換の強化
-
getPlain
public final int getPlain()変数が非volatileと宣言されているかのように、読み込みのメモリー・セマンティクスを持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setPlain
public final void setPlain(int newValue)値がnewValueに設定され、変数が非volatileおよび非finalとして宣言されているかのように設定されたメモリー・セマンティクスが使用されます。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 9
-
getOpaque
public final int getOpaque()VarHandle.getOpaque(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setOpaque
public final void setOpaque(int newValue)値をnewValueに設定し、VarHandle.setOpaque(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 9
-
getAcquire
public final int getAcquire()VarHandle.getAcquire(java.lang.Object...)で指定されたメモリー効果を持つ現在の値を返します。- 戻り値:
- 値
- 導入されたバージョン:
- 9
-
setRelease
public final void setRelease(int newValue)値をnewValueに設定し、VarHandle.setRelease(java.lang.Object...)で指定されたメモリー効果を設定します。- パラメータ:
newValue- 新しい値- 導入されたバージョン:
- 9
-
compareAndExchange
public final int compareAndExchange(int expectedValue, int newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchange(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
-
compareAndExchangeAcquire
public final int compareAndExchangeAcquire(int expectedValue, int newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
-
compareAndExchangeRelease
public final int compareAndExchangeRelease(int expectedValue, int newValue)「証人の価値」、== expectedValueと呼ばれる現在の値がnewValueに原子的に設定され、VarHandle.compareAndExchangeRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 目撃者の価値は、成功した場合の期待値と同じです
- 導入されたバージョン:
- 9
-
weakCompareAndSetVolatile
public final boolean weakCompareAndSetVolatile(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSet(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
weakCompareAndSetAcquire
public final boolean weakCompareAndSetAcquire(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-
weakCompareAndSetRelease
public final boolean weakCompareAndSetRelease(int expectedValue, int newValue)おそらくnewValueに値を原子的に設定します。現在の値== expectedValueの場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)で指定されたメモリー効果が適用されます。- パラメータ:
expectedValue- 期待値newValue- 新しい値- 戻り値:
- 成功した場合は
true - 導入されたバージョン:
- 9
-