Atomic Long Array
Требования к платформе и версии: Common (2.1)
expect class AtomicLongArray
Массив значений типа long, элементы которого можно обновлять атомарно.
Особенности реализации для конкретных платформ:
При использовании бэкенда Native AtomicLongArray хранит LongArray и атомарно обновляет его элементы. Дополнительные сведения о гарантиях атомарности при чтении и записи см. в описании kotlin.concurrent.Volatile.
При использовании JVM экземпляры AtomicLongArray представлены типом java.util.concurrent.atomic.AtomicLongArray. Сведения о гарантиях для volatile-доступа и обновления атомарных переменных см. в спецификации языка Java (17.4. Модель памяти).
Для JS и Wasm реализация AtomicLongArray тривиальна и не является потокобезопасной, поскольку эти платформы не поддерживают многопоточность.
Требования к платформе и версии: JS (2.1)
actual class AtomicLongArray
Массив значений типа long, элементы которого можно обновлять атомарно.
Поскольку платформа JS не поддерживает многопоточность, реализация тривиальна и не использует атомарную синхронизацию.
Требования к платформе и версии: JVM (2.1)
actual class AtomicLongArray
Массив значений типа long, элементы которого можно обновлять атомарно.
Экземпляры AtomicLongArray представлены типом java.util.concurrent.atomic.AtomicLongArray и предоставляют те же гарантии атомарности.
Требования к платформе и версии: Native (2.1)
actual class AtomicLongArray
Массив значений типа long, элементы которого можно обновлять атомарно.
Операция чтения loadAt имеет те же эффекты для памяти, что и чтение свойства Volatile; операция записи storeAt имеет те же эффекты для памяти, что и запись свойства Volatile; операции чтения-модификации-записи, такие как exchangeAt, compareAndSetAt, compareAndExchangeAt, fetchAndAddAt, addAndFetchAt, имеют те же эффекты для памяти, что и чтение и запись свойства Volatile.
Дополнительные сведения о гарантиях атомарности при чтении и записи см. в описании kotlin.concurrent.Volatile.
Требования к платформе и версии: Wasm-JS (2.1), Wasm-WASI (2.1)
actual class AtomicLongArray
Массив значений типа long, элементы которого можно обновлять атомарно.
Поскольку платформа Wasm не поддерживает многопоточность, реализация тривиальна и не использует атомарную синхронизацию.
Конструкторы
Требования к платформе и версии: Common, Native
expect constructor(size: Int)
Создает новый AtomicLongArray указанного размера, инициализируя все элементы нулем.
expect constructor(array: LongArray)
Создает новый AtomicLongArray, заполненный элементами заданного массива.
Требования к платформе и версии: JS, JVM, Wasm-JS, Wasm-WASI
actual constructor(size: Int)
Создает новый AtomicLongArray заданного размера, инициализируя все элементы нулем.
actual constructor(array: LongArray)
Создает новый AtomicLongArray, заполненный элементами заданного массива.
Свойства
Функции
Требования к платформе и версии: Common (2.1), JS (2.1), JVM (2.1), Native (2.1)
expect fun addAndFetchAt(index: Int, delta: Long): Long
Атомарно прибавляет заданное приращение к элементу этого AtomicLongArray по указанному индексу и возвращает новое значение элемента.
Требования к платформе и версии: Wasm-JS (2.1), Wasm-WASI (2.1)
actual fun addAndFetchAt(index: Int, delta: Long): Long
Атомарно прибавляет заданное приращение к элементу этого AtomicLongArray по указанному индексу и возвращает новое значение элемента.
Требования к платформе и версии: JVM (2.1)
fun AtomicLongArray.asJavaAtomicArray(): AtomicLongArray
Преобразует указанный экземпляр AtomicLongArray к типу java.util.concurrent.atomic.AtomicLongArray.
Требования к платформе и версии: Native (2.1)
funcompareAndExchange(index: Int, expectedValue: Long, newValue: Long): Long
Атомарно устанавливает значение элемента по указанному индексу в новое значение, если текущее значение равно ожидаемому значению, и в любом случае возвращает старое значение элемента.
Начиная с Kotlin: 2.1
expect fun compareAndExchangeAt(index: Int, expectedValue: Long, newValue: Long): Long
Атомарно записывает новое значение в элемент этого AtomicLongArray по указанному индексу, если текущее значение равно ожидаемому значению, и в любом случае возвращает старое значение элемента.
Требования к платформе и версии: Native (2.1)
funcompareAndSet(index: Int, expectedValue: Long, newValue: Long): Boolean
Атомарно устанавливает значение элемента по указанному индексу в новое значение, если текущее значение равно ожидаемому значению. Возвращает true, если операция выполнена успешно, и false только в том случае, если текущее значение элемента не равно ожидаемому.
Начиная с Kotlin: 2.1
expect fun compareAndSetAt(index: Int, expectedValue: Long, newValue: Long): Boolean
Атомарно записывает новое значение в элемент этого AtomicLongArray по указанному индексу, если текущее значение равно ожидаемому значению. Возвращает true, если операция выполнена успешно, и false только в том случае, если текущее значение элемента не равно ожидаемому.
Требования к платформе и версии: Common (2.1)
fun AtomicLongArray.decrementAndFetchAt(index: Int): Long
Атомарно уменьшает на единицу элемент этого AtomicLongArray по указанному индексу и возвращает новое значение элемента.
Требования к платформе и версии: Native (2.1)
fundecrementAndGet(index: Int): Long
Атомарно уменьшает на единицу элемент по указанному индексу и возвращает новое значение элемента.
Начиная с Kotlin: 2.1
expect fun exchangeAt(index: Int, newValue: Long): Long
Атомарно записывает новое значение в элемент этого AtomicLongArray по указанному индексу и возвращает старое значение элемента.
Требования к платформе и версии: Common (2.1), JS (2.1), JVM (2.1), Native (2.1)
expect fun fetchAndAddAt(index: Int, delta: Long): Long
Атомарно прибавляет заданное приращение к элементу этого AtomicLongArray по указанному индексу и возвращает старое значение элемента.
Требования к платформе и версии: Wasm-JS (2.1), Wasm-WASI (2.1)
actual fun fetchAndAddAt(index: Int, delta: Long): Long
Атомарно прибавляет заданное приращение к элементу этого AtomicLongArray по указанному индексу и возвращает старое значение элемента.
Требования к платформе и версии: Common (2.1)
fun AtomicLongArray.fetchAndDecrementAt(index: Int): Long
Атомарно уменьшает на единицу элемент этого AtomicLongArray по указанному индексу и возвращает старое значение элемента.
Требования к платформе и версии: Common (2.1)
fun AtomicLongArray.fetchAndIncrementAt(index: Int): Long
Атомарно увеличивает на единицу элемент этого AtomicLongArray по указанному индексу и возвращает старое значение элемента.
Начиная с Kotlin: 2.2
expect inline fun AtomicLongArray.fetchAndUpdateAt(index: Int, transform: (Long) -> Long): Long
Атомарно обновляет элемент этого AtomicLongArray по указанному индексу с помощью функции transform и возвращает старое значение элемента.
Требования к платформе и версии: Native (2.1)
fungetAndDecrement(index: Int): Long
Атомарно уменьшает на единицу элемент по указанному индексу и возвращает старое значение элемента.
Требования к платформе и версии: Native (2.1)
fungetAndIncrement(index: Int): Long
Атомарно увеличивает на единицу элемент по указанному индексу и возвращает старое значение элемента.
Требования к платформе и версии: Common (2.1)
fun AtomicLongArray.incrementAndFetchAt(index: Int): Long
Атомарно увеличивает на единицу элемент этого AtomicLongArray по указанному индексу и возвращает новое значение элемента.
Требования к платформе и версии: Native (2.1)
funincrementAndGet(index: Int): Long
Атомарно увеличивает на единицу элемент по указанному индексу и возвращает новое значение элемента.
Начиная с Kotlin: 2.1
expect fun storeAt(index: Int, newValue: Long)
Атомарно записывает новое значение в элемент этого AtomicLongArray по указанному индексу.
Требования к платформе и версии: Common (2.1), JS (2.1), JVM (2.1), Wasm-JS (2.1), Wasm-WASI (2.1)
expect open override fun toString(): String
Возвращает строковое представление базового массива значений типа long.
Требования к платформе и версии: Native (2.1)
actual open override fun toString(): String
Возвращает строковое представление базового массива значений типа int.
Начиная с Kotlin: 2.2
expect inline fun AtomicLongArray.updateAndFetchAt(index: Int, transform: (Long) -> Long): Long
Атомарно обновляет элемент этого AtomicLongArray по указанному индексу с помощью функции transform и возвращает обновленное значение элемента.
Начиная с Kotlin: 2.2
expect inline fun AtomicLongArray.updateAt(index: Int, transform: (Long) -> Long)
Атомарно обновляет элемент этого AtomicLongArray по указанному индексу с помощью функции transform.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.concurrent.atomics/-atomic-long-array/index.html