- 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
- 関連項目:
- 直列化された形式
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 DoubleAdder()
合計の初期値ゼロを使用して、新しいアダーを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 void
add(double x)
指定された値を加算します。double
doubleValue()
sum()
と等価です。float
floatValue()
sum()
の縮小プリミティブ変換後の値をfloat
として返します。int
intValue()
sum()
の縮小プリミティブ変換後の値をint
として返します。long
longValue()
sum()
の縮小プリミティブ変換後の値をlong
として返します。void
reset()
合計を保持する変数をゼロにリセットします。double
sum()
現在の合計を返します。double
sumThenReset()
String
toString()
sum()
の文字列表現を返します。-
クラス java.lang.Numberで宣言されたメソッド
byteValue, shortValue
-
-
-
-
メソッドの詳細
-
add
public void add(double x)
指定された値を加算します。- パラメータ:
x
- 加算する値
-
sum
public double sum()
現在の合計を返します。 返される値は原子的スナップショットではありません。並行更新がない場合の呼出しでは正確な結果が返されますが、合計の計算中に発生した並行更新は組み込まれない可能性があります。 また、浮動小数点算術演算は厳密に結合的ではないため、返される結果は、単一の変数に一連の更新を逐次的に行うことで取得される値とは必ずしも同一になりません。- 戻り値:
- 合計
-
reset
public void reset()
合計を保持する変数をゼロにリセットします。 このメソッドは、新しいアダーを作成する代わりに利用できますが、並行更新がない場合のみ有効です。 このメソッドは本質的に危ういので、並行して更新を行っているスレッドがないことがわかっている場合のみ使用するようにしてください。
-
sumThenReset
public double sumThenReset()
sum()
に続いてreset()
を実行した場合と効果は同じです。 たとえば、マルチスレッド計算の間の静止点の期間中に、このメソッドが適用される場合があります。 このメソッドと並行して更新が行われている場合、返される値は、リセット前に発生した最終の値であることは保証されません。- 戻り値:
- 合計
-
doubleValue
public double doubleValue()
sum()
と等価です。- 定義:
doubleValue
、クラスNumber
- 戻り値:
- 合計
-
longValue
public long longValue()
sum()
の縮小プリミティブ変換後の値をlong
として返します。
-
intValue
public int intValue()
sum()
の縮小プリミティブ変換後の値をint
として返します。
-
floatValue
public float floatValue()
sum()
の縮小プリミティブ変換後の値をfloat
として返します。- 定義:
floatValue
、クラスNumber
- 戻り値:
- このオブジェクトが表す数値を
float
型に変換した値。
-
-