Spec-Zone.ru › OpenJDK 24

Класс 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()
Эквивалентно 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/atomic/DoubleAdder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API