Spec-Zone.ru › OpenJDK 27

Класс AtomicLongArray

java.lang.Object
java.util.concurrent.atomic.AtomicLongArray
Все реализуемые интерфейсы:
Serializable
public class AtomicLongArray extends Object implements Serializable
Массив long, элементы которого можно обновлять атомарно. Описание свойств атомарного доступа см. в спецификации VarHandle.
С версии:
1.5
См. также:
  • Сериализованная форма

Краткое описание конструкторов

Конструктор Описание
AtomicLongArray(int length)
Создает новый AtomicLongArray заданной длины, изначально заполняя все элементы нулями.
AtomicLongArray(long[] array)
Создает новый AtomicLongArray той же длины, что и заданный массив, и копирует в него все его элементы.

Краткое описание методов

Модификатор и тип Метод Описание
final long accumulateAndGet(int i, long x, LongBinaryOperator accumulatorFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям, и возвращает обновленное значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)).
long addAndGet(int i, long delta)
Атомарно прибавляет заданное значение к элементу с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)).
final long compareAndExchange(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое контрольным значением, == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndExchange(Object...)).
final long compareAndExchangeAcquire(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое контрольным значением, == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndExchangeAcquire(Object...)).
final long compareAndExchangeRelease(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое контрольным значением, == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndExchangeRelease(Object...)).
final boolean compareAndSet(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)).
final long decrementAndGet(int i)
Атомарно уменьшает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)).
final long get(int i)
Возвращает текущее значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getVolatile(Object...)).
final long getAcquire(int i)
Возвращает текущее значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAcquire(Object...)).
final long getAndAccumulate(int i, long x, LongBinaryOperator accumulatorFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям, и возвращает предыдущее значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)).
final long getAndAdd(int i, long delta)
Атомарно прибавляет заданное значение к элементу с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)).
final long getAndDecrement(int i)
Атомарно уменьшает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)).
final long getAndIncrement(int i)
Атомарно увеличивает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)).
final long getAndSet(int i, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue и возвращает прежнее значение (эффекты памяти соответствуют спецификации VarHandle.getAndSet(Object...)).
final long getAndUpdate(int i, LongUnaryOperator updateFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию, и возвращает предыдущее значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)).
final long getOpaque(int i)
Возвращает текущее значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getOpaque(Object...)).
final long getPlain(int i)
Возвращает текущее значение элемента с индексом i, используя семантику памяти чтения, как если бы переменная была объявлена non-volatile.
final long incrementAndGet(int i)
Атомарно увеличивает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)).
final void lazySet(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setRelease(Object...)).
final int length()
Возвращает длину массива.
final void set(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setVolatile(Object...)).
final void setOpaque(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setOpaque(Object...)).
final void setPlain(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue, используя семантику памяти записи, как если бы переменная была объявлена non-volatile и non-final.
final void setRelease(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setRelease(Object...)).
String toString()
Возвращает строковое представление текущих значений массива.
final long updateAndGet(int i, LongUnaryOperator updateFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию, и возвращает обновленное значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)).
final boolean weakCompareAndSet(int i, long expectedValue, long newValue)
Устарел.
Этот метод имеет обычные эффекты памяти, однако его имя подразумевает volatile-эффекты памяти (см. такие методы, как compareAndExchange(int, long, long) и compareAndSet(int, long, long)).
final boolean weakCompareAndSetAcquire(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSetAcquire(Object...)).
final boolean weakCompareAndSetPlain(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSetPlain(Object...)).
final boolean weakCompareAndSetRelease(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSetRelease(Object...)).
final boolean weakCompareAndSetVolatile(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSet(Object...)).

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли другой объект этому объекту.
protected void finalize()
Устарел, подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени.

Подробное описание конструкторов

AtomicLongArray

public AtomicLongArray(int length)
Создает новый AtomicLongArray заданной длины, все элементы которого изначально равны нулю.
Параметры:
length — длина массива

AtomicLongArray

public AtomicLongArray(long[] array)
Создает новый AtomicLongArray той же длины, что и заданный массив, копируя из него все элементы.
Параметры:
array — массив, из которого копируются элементы
Исключения:
NullPointerException — если array равен null

Подробное описание методов

length

public final int length()
Возвращает длину массива.
Возвращает:
длину массива

get

public final long get(int i)
Возвращает текущее значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getVolatile(Object...).
Параметры:
i — индекс
Возвращает:
текущее значение

set

public final void set(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты на память соответствуют указанным в VarHandle.setVolatile(Object...).
Параметры:
i — индекс
newValue — новое значение

lazySet

public final void lazySet(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты на память соответствуют указанным в VarHandle.setRelease(Object...).
Параметры:
i — индекс
newValue — новое значение
С версии:
1.6

getAndSet

public final long getAndSet(int i, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue и возвращает прежнее значение; эффекты на память соответствуют указанным в VarHandle.getAndSet(Object...).
Параметры:
i — индекс
newValue — новое значение
Возвращает:
предыдущее значение

compareAndSet

public final boolean compareAndSet(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты на память соответствуют указанным в VarHandle.compareAndSet(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true, если операция выполнена успешно. Возврат false означает, что фактическое значение не совпадало с ожидаемым.

weakCompareAndSet

@Deprecated(since="9") public final boolean weakCompareAndSet(int i, long expectedValue, long newValue)
Устарел.
Этот метод имеет обычные эффекты на память, но его имя подразумевает эффекты volatile (см. такие методы, как compareAndExchange(int, long, long) и compareAndSet(int, long, long)). Чтобы избежать путаницы между обычными эффектами и эффектами volatile, рекомендуется вместо него использовать метод weakCompareAndSetPlain(int, long, long).
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты на память соответствуют указанным в VarHandle.weakCompareAndSetPlain(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true, если операция выполнена успешно
См. также:
  • weakCompareAndSetPlain(int, long, long)

weakCompareAndSetPlain

public final boolean weakCompareAndSetPlain(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты на память соответствуют указанным в VarHandle.weakCompareAndSetPlain(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true, если операция выполнена успешно
С версии:
9

getAndIncrement

public final long getAndIncrement(int i)
Атомарно увеличивает значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAndAdd(Object...).

Эквивалентно getAndAdd(i, 1).

Параметры:
i — индекс
Возвращает:
предыдущее значение

getAndDecrement

public final long getAndDecrement(int i)
Атомарно уменьшает значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAndAdd(Object...).

Эквивалентно getAndAdd(i, -1).

Параметры:
i — индекс
Возвращает:
предыдущее значение

getAndAdd

public final long getAndAdd(int i, long delta)
Атомарно прибавляет заданное значение к значению элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAndAdd(Object...).
Параметры:
i — индекс
delta — прибавляемое значение
Возвращает:
предыдущее значение

incrementAndGet

public final long incrementAndGet(int i)
Атомарно увеличивает значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAndAdd(Object...).

Эквивалентно addAndGet(i, 1).

Параметры:
i — индекс
Возвращает:
обновленное значение

decrementAndGet

public final long decrementAndGet(int i)
Атомарно уменьшает значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAndAdd(Object...).

Эквивалентно addAndGet(i, -1).

Параметры:
i — индекс
Возвращает:
обновленное значение

addAndGet

public long addAndGet(int i, long delta)
Атомарно прибавляет заданное значение к значению элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAndAdd(Object...).
Параметры:
i — индекс
delta — прибавляемое значение
Возвращает:
обновленное значение

getAndUpdate

public final long getAndUpdate(int i, LongUnaryOperator updateFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию (эффекты на память соответствуют указанным в VarHandle.compareAndSet(Object...)), и возвращает предыдущее значение. Функция должна быть чистой, поскольку при неудачных попытках обновления из-за конкуренции между потоками она может применяться повторно.
Параметры:
i — индекс
updateFunction — функция без побочных эффектов
Возвращает:
предыдущее значение
С версии:
1.8

updateAndGet

public final long updateAndGet(int i, LongUnaryOperator updateFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию (эффекты на память соответствуют указанным в VarHandle.compareAndSet(Object...)), и возвращает обновленное значение. Функция должна быть чистой, поскольку при неудачных попытках обновления из-за конкуренции между потоками она может применяться повторно.
Параметры:
i — индекс
updateFunction — функция без побочных эффектов
Возвращает:
обновленное значение
С версии:
1.8

getAndAccumulate

public final long getAndAccumulate(int i, long x, LongBinaryOperator accumulatorFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям (эффекты на память соответствуют указанным в VarHandle.compareAndSet(Object...)), и возвращает предыдущее значение. Функция должна быть чистой, поскольку при неудачных попытках обновления из-за конкуренции между потоками она может применяться повторно. Функция получает в качестве первого аргумента текущее значение элемента с индексом i, а в качестве второго — заданное значение для обновления.
Параметры:
i — индекс
x — значение для обновления
accumulatorFunction — функция двух аргументов без побочных эффектов
Возвращает:
предыдущее значение
С версии:
1.8

accumulateAndGet

public final long accumulateAndGet(int i, long x, LongBinaryOperator accumulatorFunction)
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям (эффекты на память соответствуют указанным в VarHandle.compareAndSet(Object...)), и возвращает обновленное значение. Функция должна быть чистой, поскольку при неудачных попытках обновления из-за конкуренции между потоками она может применяться повторно. Функция получает в качестве первого аргумента текущее значение элемента с индексом i, а в качестве второго — заданное значение для обновления.
Параметры:
i — индекс
x — значение для обновления
accumulatorFunction — функция двух аргументов без побочных эффектов
Возвращает:
обновленное значение
С версии:
1.8

toString

public String toString()
Возвращает строковое представление текущих значений массива.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление текущих значений массива

getPlain

public final long getPlain(int i)
Возвращает текущее значение элемента с индексом i; семантика памяти соответствует чтению, как если бы переменная была объявлена не-volatile.
Параметры:
i — индекс
Возвращает:
значение
С версии:
9

setPlain

public final void setPlain(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue; семантика памяти соответствует записи, как если бы переменная была объявлена не-volatile и не-final.
Параметры:
i — индекс
newValue — новое значение
С версии:
9

getOpaque

public final long getOpaque(int i)
Возвращает текущее значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getOpaque(Object...).
Параметры:
i — индекс
Возвращает:
значение
С версии:
9

setOpaque

public final void setOpaque(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты на память соответствуют указанным в VarHandle.setOpaque(Object...).
Параметры:
i — индекс
newValue — новое значение
С версии:
9

getAcquire

public final long getAcquire(int i)
Возвращает текущее значение элемента с индексом i; эффекты на память соответствуют указанным в VarHandle.getAcquire(Object...).
Параметры:
i — индекс
Возвращает:
значение
С версии:
9

setRelease

public final void setRelease(int i, long newValue)
Устанавливает для элемента с индексом i значение newValue; эффекты на память соответствуют указанным в VarHandle.setRelease(Object...).
Параметры:
i — индекс
newValue — новое значение
С версии:
9

compareAndExchange

public final long compareAndExchange(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое значением-свидетелем, == expectedValue; эффекты на память соответствуют указанным в VarHandle.compareAndExchange(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
значение-свидетель, которое при успешном выполнении совпадает с ожидаемым значением
С версии:
9

compareAndExchangeAcquire

public final long compareAndExchangeAcquire(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое значением-свидетелем, == expectedValue; эффекты на память соответствуют указанным в VarHandle.compareAndExchangeAcquire(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
значение-свидетель, которое при успешном выполнении совпадает с ожидаемым значением
С версии:
9

compareAndExchangeRelease

public final long compareAndExchangeRelease(int i, long expectedValue, long newValue)
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое значением-свидетелем, == expectedValue; эффекты на память соответствуют указанным в VarHandle.compareAndExchangeRelease(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
значение-свидетель, которое при успешном выполнении совпадает с ожидаемым значением
С версии:
9

weakCompareAndSetVolatile

public final boolean weakCompareAndSetVolatile(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты на память соответствуют указанным в VarHandle.weakCompareAndSet(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true, если операция выполнена успешно
С версии:
9

weakCompareAndSetAcquire

public final boolean weakCompareAndSetAcquire(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты на память соответствуют указанным в VarHandle.weakCompareAndSetAcquire(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true, если операция выполнена успешно
С версии:
9

weakCompareAndSetRelease

public final boolean weakCompareAndSetRelease(int i, long expectedValue, long newValue)
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue; эффекты на память соответствуют указанным в VarHandle.weakCompareAndSetRelease(Object...).
Параметры:
i — индекс
expectedValue — ожидаемое значение
newValue — новое значение
Возвращает:
true, если операция выполнена успешно
С версии:
9

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры основных понятий, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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