Spec-Zone .ru
спецификации, руководства, описания, API
|
public class LongAccumulator extends Number implements Serializable
long
оцените обновленное использование предоставленной функции. Когда обновления (метод accumulate(long)
) спорятся через потоки, набор переменных может вырасти динамически, чтобы уменьшить конкуренцию. Метод get()
(или, эквивалентно, longValue()
) возвращает текущую стоимость через переменные, поддерживающие обновления. Этот class обычно предпочтителен для AtomicLong
когда многократные потоки обновляют общую ценность, которая используется в целях, таких как собирание статистических данных, не для мелкомодульного управления синхронизацией. В соответствии с низкой конкуренцией обновления, у этих двух классов есть подобные характеристики. Но в соответствии с высокой конкуренцией, ожидаемая пропускная способность этого class значительно выше, за счет более высокого потребления пространства.
Порядок накопления в пределах или через потоки не гарантируется и не может зависеться от, таким образом, этот class будет только применим к функциям, для которых не имеет значения порядок накопления. Предоставленная функция аккумулятора должна быть без побочных эффектов, так как она может быть повторно применена, когда предпринятые обновления перестали работать из-за конкуренции среди потоков. Функция применяется с текущей стоимостью как ее первый параметр, и данное обновление как второй параметр. Например, чтобы поддержать рабочее максимальное значение, Вы могли предоставить Long::max
наряду с Long.MIN_VALUE
как идентификационные данные.
Класс LongAdder
обеспечивает аналоги функциональности этого class для общего особого случая поддержания количеств и сумм. Вызов new LongAdder()
эквивалентно new LongAccumulator((x, y) -> x + y, 0L
.
Этот class расширяется Number
, но не определяет методы такой как equals
, hashCode
и compareTo
потому что экземпляры, как ожидают, будут видоизменены, и так не полезны как ключи набора.
Конструктор и Описание |
---|
LongAccumulator(LongBinaryOperator accumulatorFunction, long identity)
Создает новый экземпляр, используя данную функцию аккумулятора и нейтральный элемент.
|
Модификатор и Тип | Метод и Описание |
---|---|
void |
accumulate(long x)
Обновления с данным значением.
|
double |
doubleValue()
Возвращает текущую стоимость как a
double после расширяющегося примитивного преобразования. |
float |
floatValue()
Возвращает текущую стоимость как a
float после расширяющегося примитивного преобразования. |
long |
get()
Возвращает текущую стоимость.
|
long |
getThenReset()
|
int |
intValue()
Возвращает текущую стоимость как
int после сужающегося примитивного преобразования. |
long |
longValue()
Эквивалентный
get() . |
void |
reset()
Переменные сбросов, поддерживающие обновления к значению идентификационных данных.
|
Строка |
toString()
Возвращает Строковое представление текущей стоимости.
|
byteValue, shortValue
public LongAccumulator(LongBinaryOperator accumulatorFunction, long identity)
public void accumulate(long x)
x
- значениеpublic long get()
public void reset()
public long getThenReset()
get()
сопровождаемый reset()
. Этот метод может применяться например во время статических точек между многопоточными вычислениями. Если будут обновления, параллельные с этим методом, то возвращенное значение, как гарантируют, не будет заключительным значением, происходящим перед сбросом.public String toString()
public long longValue()
get()
.public int intValue()
int
после сужающегося примитивного преобразования.public float floatValue()
float
после расширяющегося примитивного преобразования.floatValue
в class Number
float
.public double doubleValue()
double
после расширяющегося примитивного преобразования.doubleValue
в class Number
double
.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92