Класс DoubleAdder
- java.lang.Object
-
- java.lang.Number
-
- java.util.concurrent.atomic.DoubleAdder
- Все реализуемые интерфейсы:
- Serializable
public class DoubleAdder extends Number implements Serializable
Одна или несколько переменных, вместе поддерживающих начальную сумму, равную нулю. double При конкурентных обновлениях (метод add(double)) между потоками, набор переменных может динамически увеличиваться, чтобы уменьшить конкуренцию. Метод sum() (или, эквивалентно, doubleValue()) возвращает текущую общую сумму, скопированную по всем переменным, поддерживающим сумму. Порядок накопления внутри или между потоками не гарантируется. Таким образом, этот класс может быть неприменим, если требуется числовая устойчивость, особенно при объединении значений с существенно разными порядками величины.
Этот класс обычно предпочтительнее альтернатив, когда несколько потоков обновляют общее значение, используемое для таких целей, как статистические сводки, которые часто обновляются, но реже читаются.
Этот класс расширяет Number, но не определяет методы, такие как equals, hashCode и compareTo, потому что экземпляры, как ожидается, будут изменены, поэтому они не подходят в качестве ключей коллекции.
- С:
- 1.8
- См. также:
- Сериализованная форма
Конструкторы
| Конструктор и описание |
|---|
DoubleAdder() Создаёт новый объект с начальной суммой, равной нулю. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
add(double x) Добавляет заданное значение. |
double |
doubleValue() Эквивалентно |
float |
floatValue() Возвращает |
int |
intValue() Возвращает |
long |
longValue() Возвращает |
void |
reset() Сбрасывает переменные, поддерживающие сумму, до нуля. |
double |
sum() Возвращает текущую сумму. |
double |
sumThenReset() |
String |
toString() Возвращает строковое представление |
Методы, унаследованные от класса java.lang.Number
byteValue, shortValue Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait Детали конструкторов
DoubleAdder
public DoubleAdder()
Создаёт новый объект с начальной суммой, равной нулю.
Детали методов
add
public void add(double x)
Добавляет заданное значение.
- Параметры:
-
x- значение для добавления
sum
public double sum()
Возвращает текущую сумму. Возвращаемое значение не является атомарным снимком; вызов в отсутствие конкурентных обновлений возвращает точный результат, но конкурентные обновления, которые происходят во время расчёта суммы, могут не быть включены. Кроме того, поскольку арифметика с плавающей точкой не является строго ассоциативной, возвращаемый результат может не совпадать со значением, которое было бы получено в последовательной серии обновлений одной переменной.
- Возвращает:
- сумма
reset
public void reset()
Сбрасывает переменные, поддерживающие сумму, до нуля. Этот метод может быть полезной альтернативой созданию нового объекта, но эффективен только в том случае, если нет конкурентных обновлений. Поскольку этот метод по своей сути состязательный, он должен использоваться только в том случае, если известно, что потоки не обновляют значения одновременно.
sumThenReset
public double sumThenReset()
Эквивалентно по действию sum(), за которым следует reset(). Этот метод может применяться, например, во время неактивных точек между многопоточными вычислениями. Если есть обновления, одновременные с этим методом, возвращаемое значение не гарантируется как конечное значение, существовавшее перед сбросом.
- Возвращает:
- сумма
toString
public String toString()
Возвращает строковое представление sum().
doubleValue
public double doubleValue()
Эквивалентно sum().
- Определено в:
-
doubleValueв классеNumber - Возвращает:
- сумма
longValue
public long longValue()
Возвращает sum() в виде long после сужения примитивного преобразования.
- Определено в:
-
longValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования в тип
long.
intValue
public int intValue()
Возвращает sum() в виде int после сужения примитивного преобразования.
- Определено в:
-
intValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования в тип
int.
floatValue
public float floatValue()
Возвращает sum() в виде float после сужения примитивного преобразования.
- Определено в:
-
floatValueв классеNumber - Возвращает:
- числовое значение, представленное этим объектом после преобразования в тип
float.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.