java.lang.Object
java.lang.Number
java.util.concurrent.atomic.DoubleAdder
- すべての実装されたインタフェース:
Serializable
public class DoubleAdder extends Number implements Serializable
初期値ゼロの
double
の合計を一緒に保持する1つ以上の変数。 更新(メソッドadd(double)
)がスレッド間で競合すると、競合を減らすために変数セットが動的に拡大する場合があります。 メソッドsum()
(または、等価のdoubleValue()
)は、合計を保持している変数にまたがって組み合わされた現在の合計を返します。 スレッド内またはスレッド間での累積の順序は保証されていません。 したがって、数値の安定性が必要な場合、特に、絶対値の次数がかなり異なる値を組み合わせるときは、このクラスは適用できません。
更新頻度の方が読取り頻度より高いサマリー統計などの目的に使用される共通の値が、複数のスレッドによって更新される場合、通常は代替クラスよりもこのクラスをお薦めします。
このクラスはNumber
を拡張しますが、equals
、hashCode
、 compareTo
などのメソッドを定義しません。インスタンスでは変更が想定されているため、コレクション・キーとしては役立たないからです。
- 導入されたバージョン:
- 1.8
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
クラスjava.lang.Numberで宣言されたメソッド
byteValue, shortValue
-
コンストラクタの詳細
-
DoubleAdder
public DoubleAdder()合計の初期値ゼロを使用して、新しいアダーを作成します。
-
-
メソッドの詳細
-
add
public void add(double x) 指定された値を加算します。- パラメータ:
x
- 加算する値
-
sum
public double sum()現在の合計を返します。 返される値は原子的スナップショットではありません。並行更新がない場合の呼出しでは正確な結果が返されますが、合計の計算中に発生した並行更新は組み込まれない可能性があります。 また、浮動小数点算術演算は厳密に結合的ではないため、返される結果は、単一の変数に一連の更新を逐次的に行うことで取得される値とは必ずしも同一になりません。- 戻り値:
- 合計
-
reset
public void reset()合計を保持する変数をゼロにリセットします。 このメソッドは、新しいアダーを作成する代わりに利用できますが、並行更新がない場合のみ有効です。 このメソッドは本質的に危ういので、並行して更新を行っているスレッドがないことがわかっている場合のみ使用するようにしてください。 -
sumThenReset
-
toString
-
doubleValue
-
longValue
-
intValue
-
floatValue
public float floatValue()sum()
の縮小プリミティブ変換後の値をfloat
として返します。- 定義:
floatValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す数値を
float
型に変換した値。
-