Класс AtomicLongArray
java.lang.Object
java.util.concurrent.atomic.AtomicLongArray
- Все реализуемые интерфейсы:
Serializable
public class AtomicLongArray extends Object implements Serializable
Массив
long, элементы которого можно обновлять атомарно. Описание свойств атомарного доступа см. в спецификации VarHandle.- С версии:
- 1.5
- См. также:
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
AtomicLongArray |
Создает новый AtomicLongArray заданной длины, изначально заполняя все элементы нулями. |
AtomicLongArray |
Создает новый AtomicLongArray той же длины, что и заданный массив, и копирует в него все его элементы. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final long |
accumulateAndGet |
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям, и возвращает обновленное значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)). |
long |
addAndGet |
Атомарно прибавляет заданное значение к элементу с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)). |
final long |
compareAndExchange |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое контрольным значением, == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndExchange(Object...)). |
final long |
compareAndExchangeAcquire |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое контрольным значением, == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndExchangeAcquire(Object...)). |
final long |
compareAndExchangeRelease |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента, называемое контрольным значением, == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndExchangeRelease(Object...)). |
final boolean |
compareAndSet |
Атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)). |
final long |
decrementAndGet |
Атомарно уменьшает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)). |
final long |
get |
Возвращает текущее значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getVolatile(Object...)). |
final long |
getAcquire |
Возвращает текущее значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAcquire(Object...)). |
final long |
getAndAccumulate |
Атомарно обновляет элемент с индексом i, применяя заданную функцию к текущему и заданному значениям, и возвращает предыдущее значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)). |
final long |
getAndAdd |
Атомарно прибавляет заданное значение к элементу с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)). |
final long |
getAndDecrement |
Атомарно уменьшает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)). |
final long |
getAndIncrement |
Атомарно увеличивает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)). |
final long |
getAndSet |
Атомарно устанавливает для элемента с индексом i значение
newValue и возвращает прежнее значение (эффекты памяти соответствуют спецификации VarHandle.getAndSet(Object...)). |
final long |
getAndUpdate |
Атомарно обновляет элемент с индексом i, применяя заданную функцию, и возвращает предыдущее значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)). |
final long |
getOpaque |
Возвращает текущее значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getOpaque(Object...)). |
final long |
getPlain |
Возвращает текущее значение элемента с индексом i, используя семантику памяти чтения, как если бы переменная была объявлена non-volatile. |
final long |
incrementAndGet |
Атомарно увеличивает значение элемента с индексом i (эффекты памяти соответствуют спецификации VarHandle.getAndAdd(Object...)). |
final void |
lazySet |
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setRelease(Object...)). |
final int |
length() |
Возвращает длину массива. |
final void |
set |
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setVolatile(Object...)). |
final void |
setOpaque |
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setOpaque(Object...)). |
final void |
setPlain |
Устанавливает для элемента с индексом i значение newValue, используя семантику памяти записи, как если бы переменная была объявлена non-volatile и non-final. |
final void |
setRelease |
Устанавливает для элемента с индексом i значение newValue (эффекты памяти соответствуют спецификации VarHandle.setRelease(Object...)). |
String |
toString() |
Возвращает строковое представление текущих значений массива. |
final long |
updateAndGet |
Атомарно обновляет элемент с индексом i, применяя заданную функцию, и возвращает обновленное значение (эффекты памяти соответствуют спецификации VarHandle.compareAndSet(Object...)). |
final boolean |
weakCompareAndSet |
Устарел. |
final boolean |
weakCompareAndSetAcquire |
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSetAcquire(Object...)). |
final boolean |
weakCompareAndSetPlain |
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSetPlain(Object...)). |
final boolean |
weakCompareAndSetRelease |
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSetRelease(Object...)). |
final boolean |
weakCompareAndSetVolatile |
Возможно, атомарно устанавливает для элемента с индексом i значение newValue, если текущее значение элемента == expectedValue (эффекты памяти соответствуют спецификации VarHandle.weakCompareAndSet(Object...)). |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарел, подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ждать пробуждения, обычно в результате вызова 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
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
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
© 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.
compareAndExchange(int, long, long)иcompareAndSet(int, long, long)).