Spec-Zone.ru › OpenJDK 17

Класс 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, 2021, 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/17/docs/api/java.base/java/util/concurrent/atomic/DoubleAdder.html

Spec-Zone.ru

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