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
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ説明初期値0
を使って、新しいAtomicIntegerを作成します。AtomicInteger
(int initialValue) 指定された初期パラメータを使って、新しいAtomicIntegerを作成します。 -
メソッドのサマリー
修飾子と型メソッド説明final int
accumulateAndGet
(int x, IntBinaryOperator accumulatorFunction) 現在の値を現在の値と指定された値に適用した結果を原子的に更新し、更新された値を返します。final int
addAndGet
(int delta) VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。final int
compareAndExchange
(int expectedValue, int newValue) 現在の値(「証人の価値」、== expectedValue
)がVarHandle.compareAndExchange(java.lang.Object...)
で指定されているメモリー効果を持つ場合、この値をnewValue
に原子的に設定します。final int
compareAndExchangeAcquire
(int expectedValue, int newValue) 現在の値(「証人の価値」、== expectedValue
)がVarHandle.compareAndExchangeAcquire(java.lang.Object...)
で指定されているメモリー効果を持つ場合、この値をnewValue
に原子的に設定します。final int
compareAndExchangeRelease
(int expectedValue, int newValue) 現在の値(「証人の価値」、== expectedValue
)がVarHandle.compareAndExchangeRelease(java.lang.Object...)
で指定されているメモリー効果を持つ場合、この値をnewValue
に原子的に設定します。final boolean
compareAndSet
(int expectedValue, int newValue) 現在の値== expectedValue
がnewValue
に値を原子的に設定します。VarHandle.compareAndSet(java.lang.Object...)
で指定されたメモリー効果があります。final int
VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果で、現在の値を原子的に減少させます。double
このAtomicInteger
の現在の値を、拡大プリミティブ変換後のdouble
として返します。メモリー効果は、VarHandle.getVolatile(java.lang.Object...)
で指定されます。float
このAtomicInteger
の現在の値を、拡大プリミティブ変換後のfloat
として返します。メモリー効果は、VarHandle.getVolatile(java.lang.Object...)
で指定されます。final int
get()
VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果を使用して、現在の値を返します。final int
VarHandle.getAcquire(java.lang.Object...)
で指定されたメモリー効果を使用して、現在の値を返します。final int
getAndAccumulate
(int x, IntBinaryOperator accumulatorFunction) 現在の値を現在の値と与えられた値に適用した結果を元に戻し、前の値を返すことで、現在の値を原子的に更新します。final int
getAndAdd
(int delta) VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果を使用して、指定された値を現在の値に原子的に追加します。final int
VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果で、現在の値を原子的に減少させます。final int
VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果で、現在の値を原子的に増分します。final int
getAndSet
(int newValue) 値をnewValue
に原子的に設定し、VarHandle.getAndSet(java.lang.Object...)
で指定されたメモリー効果で古い値を返します。final int
getAndUpdate
(IntUnaryOperator updateFunction) 指定された関数を適用した結果で現在の値を原子的に更新し、前の値を返します。final int
VarHandle.getOpaque(java.lang.Object...)
で指定されたメモリー効果を使用して、現在の値を返します。final int
getPlain()
変数がvolatile
以外と宣言されたかのように、読取りのメモリー・セマンティクスを使用して、現在の値を返します。final int
VarHandle.getAndAdd(java.lang.Object...)
で指定されたメモリー効果で、現在の値を原子的に増分します。int
intValue()
このAtomicInteger
の現在の値をint
として返し、VarHandle.getVolatile(java.lang.Object...)
で指定されたメモリー効果を返します。final void
lazySet
(int newValue) 値をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。long
このAtomicInteger
の現在の値を、拡大プリミティブ変換後のlong
として返します。メモリー効果は、VarHandle.getVolatile(java.lang.Object...)
で指定されます。final void
set
(int newValue) 値をnewValue
に設定し、VarHandle.setVolatile(java.lang.Object...)
で指定されたメモリー効果を設定します。final void
setOpaque
(int newValue) 値をnewValue
に設定し、VarHandle.setOpaque(java.lang.Object...)
で指定されたメモリー効果を設定します。final void
setPlain
(int newValue) 値がnewValue
に設定され、変数が非volatile
および非final
として宣言されているかのように設定されたメモリー・セマンティクスが使用されます。final void
setRelease
(int newValue) 値をnewValue
に設定し、VarHandle.setRelease(java.lang.Object...)
で指定されたメモリー効果を設定します。toString()
現在値の文字列表記を返します。final int
updateAndGet
(IntUnaryOperator updateFunction) 指定された関数を適用した結果を現在の値に原子的に更新し、更新された値を返します。final boolean
weakCompareAndSet
(int expectedValue, int newValue) 非推奨。final boolean
weakCompareAndSetAcquire
(int expectedValue, int newValue) おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetAcquire(java.lang.Object...)
で指定されたメモリー効果が適用されます。final boolean
weakCompareAndSetPlain
(int expectedValue, int newValue) おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetPlain(java.lang.Object...)
で指定されたメモリー効果が適用されます。final boolean
weakCompareAndSetRelease
(int expectedValue, int newValue) おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSetRelease(java.lang.Object...)
で指定されたメモリー効果が適用されます。final boolean
weakCompareAndSetVolatile
(int expectedValue, int newValue) おそらくnewValue
に値を原子的に設定します。現在の値== expectedValue
の場合は、VarHandle.weakCompareAndSet(java.lang.Object...)
で指定されたメモリー効果が適用されます。クラスjava.lang.Numberで宣言されたメソッド
byteValue, shortValue
-
コンストラクタの詳細
-
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
- 新しい値- 戻り値:
- 成功する場合は
true
。 falseは、実際の値が予想される値と等価ではないことを示す。
-
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
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
-
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
)がVarHandle.compareAndExchange(java.lang.Object...)
で指定されているメモリー効果を持つ場合、この値をnewValue
に原子的に設定します。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合に必要な値と同じになる「証人の価値」
- 導入されたバージョン:
- 9
-
compareAndExchangeAcquire
public final int compareAndExchangeAcquire(int expectedValue, int newValue) 現在の値(「証人の価値」、== expectedValue
)がVarHandle.compareAndExchangeAcquire(java.lang.Object...)
で指定されているメモリー効果を持つ場合、この値をnewValue
に原子的に設定します。- パラメータ:
expectedValue
- 期待値newValue
- 新しい値- 戻り値:
- 成功した場合に必要な値と同じになる「証人の価値」
- 導入されたバージョン:
- 9
-
compareAndExchangeRelease
public final int compareAndExchangeRelease(int expectedValue, int newValue) 現在の値(「証人の価値」、== expectedValue
)がVarHandle.compareAndExchangeRelease(java.lang.Object...)
で指定されているメモリー効果を持つ場合、この値をnewValue
に原子的に設定します。- パラメータ:
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
-
compareAndExchange(int, int)
やcompareAndSet(int, int)
などのメソッドを参照してください)を意味します。