主なクラス
java.util.concurrent.atomic
パッケージには主に以下のクラスが含まれている。
-
AtomicBoolean
:boolean
型の値の操作を提供するクラス -
AtomicInteger
:int
型の操作を提供するクラス -
AtomicLong
:long
型の操作を提供するクラス -
AtomicReference
:オブジェクト参照の操作を提供するクラス
これらのクラスは、複数のスレッドが同時にアクセスする可能性があるデータを扱う際に使用される。それぞれのクラスは、値の読み書きの原子性1を保証するためのメソッドや操作を提供し、スレッドセーフな状態でのデータの更新を可能にする。
各クラスの主な共通メソッド
-
get()
:値を取得する。 -
set()
:値を設定する。 -
compareAndSet()
:現在の値と指定した期待値を比較し、一致した場合に新しい値に置き換える。 -
getAndSet()
:現在の値を取得し、新しい値に置き換える。
各クラスの主なメソッド
AtomicBoolean
、AtomicReference
クラス
-
getAndAccumulate()
:指定された関数を適用した結果を取得し、同時に新しい値に置き換える。
AtomicInteger
、AtomicLong
クラス
-
incrementAndGet()
:値を1増やし、新しい値を取得する。 -
decrementAndGet()
:値を1減らし、新しい値を取得する。 -
addAndGet()
:指定した値を加算する。 -
getAndAdd()
:指定した値を減算する。 -
getAndIncrement()
:値を取得し、同時にインクリメントを行う。 -
getAndDecrement()
:値を取得し、同時にデクリメントを行う。
-
分離できない(してはいけない)性質のこと。一連の処理が完全に終わるか、全く実行されないかのどちらかになるよう結果が保証されていなければならない性質を表す。 ↩