Класс 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()

Эквивалентно sum().

float floatValue()

Возвращает sum() как float после сужения примитивного преобразования.

int intValue()

Возвращает sum() как int после сужения примитивного преобразования.

long longValue()

Возвращает sum() как long после сужения примитивного преобразования.

void reset()

Сбрасывает переменные, поддерживающие сумму, до нуля.

double sum()

Возвращает текущую сумму.

double sumThenReset()

Эквивалентно sum(), после чего reset().

String toString()

Возвращает строковое представление sum().

Методы, объявленные в классе 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().

Переопределяет:
toString в классе Object
Возвращает:
строковое представление 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.
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/concurrent/atomic/DoubleAdder.html

Spec-Zone .ru
спецификации, руководства, описания, API