Spec-Zone.ru › Kotlin 2

AtomicArray

kotlin-stdlib/kotlin.concurrent.atomics/AtomicArray

Требования к платформе и версии: Common (2.1)

@ExperimentalAtomicApi
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)

@ExperimentalAtomicApi
actual class AtomicArray<T>

Обобщённый массив объектов, элементы которого можно обновлять атомарно.

Поскольку платформа JS не поддерживает многопоточность, реализация тривиальна и не выполняет атомарную синхронизацию.

Требования к платформе и версии: JVM (2.1)

@ExperimentalAtomicApi
actual class AtomicArray<T>

Обобщённый массив объектов, элементы которого можно обновлять атомарно.

Экземпляры AtomicArray представлены типом java.util.concurrent.atomic.AtomicReferenceArray и обеспечивают те же гарантии атомарности.

Требования к платформе и версии: Native (2.1)

@ExperimentalAtomicApi
actual class AtomicArray<T>

Обобщённый массив объектов, элементы которого можно обновлять атомарно.

Операция чтения loadAt имеет те же эффекты на память, что и чтение свойства Volatile; операция записи storeAt имеет те же эффекты на память, что и запись свойства Volatile; операции чтения-модификации-записи, такие как exchangeAt, compareAndSetAt, compareAndExchangeAt, имеют те же эффекты на память, что и чтение и запись свойства Volatile.

Подробнее о гарантиях атомарности при чтении и записи см. в описании kotlin.concurrent.Volatile.

Требования к платформе и версии: Wasm-JS (2.1), Wasm-WASI (2.1)

@ExperimentalAtomicApi
actual class AtomicArray<T>

Обобщённый массив объектов, элементы которого можно обновлять атомарно.

Поскольку платформа Wasm не поддерживает многопоточность, реализация тривиальна и не выполняет атомарную синхронизацию.

Конструкторы

AtomicArray

Требования к платформе и версии: Common, JS, Native, Wasm-JS, Wasm-WASI

expect constructor(array: Array<T>)

Создаёт новый AtomicArray, заполненный элементами заданного массива.

Требования к платформе и версии: JVM

actual constructor(array: Array<T>)

Создаёт новый AtomicArray, заполненный элементами заданного массива.

Свойства

length

Требования к платформе и версии: Native (2.1)

val length: Int

Возвращает количество элементов в массиве.

size

Начиная с Kotlin: 2.1

expect val size: Int

Возвращает количество элементов в массиве.

Функции

asJavaAtomicArray

Требования к платформе и версии: JVM (2.1)

@ExperimentalAtomicApi
fun <T> AtomicArray<T>.asJavaAtomicArray(): AtomicReferenceArray<T>

Приводит указанный экземпляр AtomicArray к типу java.util.concurrent.atomic.AtomicReferenceArray.

compareAndExchange

Требования к платформе и версии: Native (2.1)

fun compareAndExchange(index: Int, expectedValue: T, newValue: T): T

Атомарно задаёт значение элемента с указанным индексом, равное новому значению, если текущее значение равно ожидаемому значению, и в любом случае возвращает старое значение элемента.

compareAndExchangeAt

Начиная с Kotlin: 2.1

expect fun compareAndExchangeAt(index: Int, expectedValue: T, newValue: T): T

Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом, если текущее значение равно ожидаемому значению, и в любом случае возвращает старое значение элемента.

compareAndSet

Требования к платформе и версии: Native (2.1)

fun compareAndSet(index: Int, expectedValue: T, newValue: T): Boolean

Атомарно задаёт значение элемента с указанным индексом, равное новому значению, если текущее значение равно ожидаемому значению. Возвращает true, если операция выполнена успешно, и false только в том случае, если текущее значение элемента не равно ожидаемому.

compareAndSetAt

Начиная с Kotlin: 2.1

expect fun compareAndSetAt(index: Int, expectedValue: T, newValue: T): Boolean

Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом, если текущее значение равно ожидаемому значению. Возвращает true, если операция выполнена успешно, и false только в том случае, если текущее значение элемента не равно ожидаемому.

exchangeAt

Начиная с Kotlin: 2.1

expect fun exchangeAt(index: Int, newValue: T): T

Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом и возвращает старое значение элемента.

fetchAndUpdateAt

Начиная с Kotlin: 2.2

@ExperimentalAtomicApi
expect inline fun <T> AtomicArray<T>.fetchAndUpdateAt(index: Int, transform: (T) -> T): T

Атомарно обновляет элемент этого AtomicLongArray с указанным индексом с помощью функции transform и возвращает старое значение элемента.

get

Требования к платформе и версии: Native (2.1)

operator fun get(index: Int): T

Атомарно получает значение элемента с указанным индексом.

getAndSet

Требования к платформе и версии: Native (2.1)

fun getAndSet(index: Int, newValue: T): T

Атомарно задаёт значение элемента с указанным индексом, равное новому значению, и возвращает старое значение элемента.

loadAt

Начиная с Kotlin: 2.1

expect fun loadAt(index: Int): T

Атомарно загружает значение из элемента этого AtomicArray с указанным индексом.

set

Требования к платформе и версии: Native (2.1)

operator fun set(index: Int, newValue: T)

Атомарно задаёт значение элемента с указанным индексом, равное новому значению.

storeAt

Начиная с Kotlin: 2.1

expect fun storeAt(index: Int, newValue: T)

Атомарно записывает новое значение в элемент этого AtomicArray с указанным индексом.

toString

Начиная с Kotlin: 2.1

expect open override fun toString(): String

Возвращает строковое представление базового массива объектов.

updateAndFetchAt

Начиная с Kotlin: 2.2

@ExperimentalAtomicApi
expect inline fun <T> AtomicArray<T>.updateAndFetchAt(index: Int, transform: (T) -> T): T

Атомарно обновляет элемент этого AtomicArray с указанным индексом с помощью функции transform и возвращает обновлённое значение элемента.

updateAt

Начиная с Kotlin: 2.2

@ExperimentalAtomicApi
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

Spec-Zone.ru

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