Atomic Array
Требования к платформе и версии: Common (2.1)
expect class AtomicArray<T>
Обобщённый массив объектов, элементы которого можно обновлять атомарно.
Особенности реализации для конкретных платформ:
При использовании Native-бэкенда AtomicArray хранит Array с элементами типа T и атомарно обновляет его элементы. Подробнее о гарантиях атомарности при чтении и записи см. в описании kotlin.concurrent.Volatile.
При использовании JVM экземпляры AtomicArray представлены типом java.util.concurrent.atomic.AtomicReferenceArray. Сведения о гарантиях volatile-доступа и обновлений атомарных значений см. в спецификации языка Java (17.4 Модель памяти).
Для JS и Wasm AtomicArray реализован тривиальным образом и не является потокобезопасным, поскольку эти платформы не поддерживают многопоточность.
Требования к платформе и версии: JS (2.1)
actual class AtomicArray<T>
Обобщённый массив объектов, элементы которого можно обновлять атомарно.
Поскольку платформа JS не поддерживает многопоточность, реализация тривиальна и не выполняет атомарную синхронизацию.
Требования к платформе и версии: JVM (2.1)
actual class AtomicArray<T>
Обобщённый массив объектов, элементы которого можно обновлять атомарно.
Экземпляры AtomicArray представлены типом java.util.concurrent.atomic.AtomicReferenceArray и обеспечивают те же гарантии атомарности.
Требования к платформе и версии: Native (2.1)
actual class AtomicArray<T>
Обобщённый массив объектов, элементы которого можно обновлять атомарно.
Операция чтения loadAt имеет те же эффекты на память, что и чтение свойства Volatile; операция записи storeAt имеет те же эффекты на память, что и запись свойства Volatile; операции чтения-модификации-записи, такие как exchangeAt, compareAndSetAt, compareAndExchangeAt, имеют те же эффекты на память, что и чтение и запись свойства Volatile.
Подробнее о гарантиях атомарности при чтении и записи см. в описании kotlin.concurrent.Volatile.
Требования к платформе и версии: Wasm-JS (2.1), Wasm-WASI (2.1)
actual class AtomicArray<T>
Обобщённый массив объектов, элементы которого можно обновлять атомарно.
Поскольку платформа Wasm не поддерживает многопоточность, реализация тривиальна и не выполняет атомарную синхронизацию.
Конструкторы
Требования к платформе и версии: Common, JS, Native, Wasm-JS, Wasm-WASI
expect constructor(array: Array<T>)
Создаёт новый AtomicArray, заполненный элементами заданного массива.
Требования к платформе и версии: JVM
actual constructor(array: Array<T>)
Создаёт новый AtomicArray
Свойства
Функции
Требования к платформе и версии: JVM (2.1)
fun <T> AtomicArray<T>.asJavaAtomicArray(): AtomicReferenceArray<T>
Приводит указанный экземпляр AtomicArray
Требования к платформе и версии: Native (2.1)
funcompareAndExchange(index: Int, expectedValue: T, newValue: T): T
Атомарно задаёт значение элемента с указанным индексом, равное новому значению, если текущее значение равно ожидаемому значению, и в любом случае возвращает старое значение элемента.
Начиная с Kotlin: 2.1
expect fun compareAndExchangeAt(index: Int, expectedValue: T, newValue: T): T
Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом, если текущее значение равно ожидаемому значению, и в любом случае возвращает старое значение элемента.
Требования к платформе и версии: Native (2.1)
funcompareAndSet(index: Int, expectedValue: T, newValue: T): Boolean
Атомарно задаёт значение элемента с указанным индексом, равное новому значению, если текущее значение равно ожидаемому значению. Возвращает true, если операция выполнена успешно, и false только в том случае, если текущее значение элемента не равно ожидаемому.
Начиная с Kotlin: 2.1
expect fun compareAndSetAt(index: Int, expectedValue: T, newValue: T): Boolean
Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом, если текущее значение равно ожидаемому значению. Возвращает true, если операция выполнена успешно, и false только в том случае, если текущее значение элемента не равно ожидаемому.
Начиная с Kotlin: 2.1
expect fun exchangeAt(index: Int, newValue: T): T
Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом и возвращает старое значение элемента.
Начиная с Kotlin: 2.2
expect inline fun <T> AtomicArray<T>.fetchAndUpdateAt(index: Int, transform: (T) -> T): T
Атомарно обновляет элемент этого AtomicLongArray с указанным индексом с помощью функции transform и возвращает старое значение элемента.
Начиная с Kotlin: 2.1
expect fun storeAt(index: Int, newValue: T)
Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом.
Начиная с Kotlin: 2.2
expect inline fun <T> AtomicArray<T>.updateAndFetchAt(index: Int, transform: (T) -> T): T
Атомарно обновляет элемент этого AtomicArray с указанным индексом с помощью функции transform и возвращает обновлённое значение элемента.
Начиная с Kotlin: 2.2
expect inline fun <T> AtomicArray<T>.updateAt(index: Int, transform: (T) -> T)
Атомарно обновляет элемент этого AtomicArray с указанным индексом с помощью функции 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-array/index.html