Spec-Zone.ru › OpenJDK 25

Класс 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; семантика памяти соответствует чтению так, как если бы переменная была объявлена не-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; семантика памяти соответствует записи так, как если бы переменная была объявлена не-volatile и не-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

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

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, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/util/concurrent/atomic/AtomicLongArray.html

Spec-Zone.ru

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