Spec-Zone.ru › OpenJDK 8

Класс 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, 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.

Spec-Zone.ru

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