Spec-Zone.ru › Kotlin 2

AtomicReference

kotlin-stdlib/kotlin.concurrent.atomics/AtomicReference

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

@ExperimentalAtomicApi
expect class AtomicReference<T>(value: T)

Ссылка на объект, значение которой можно обновлять атомарно.

Особенности реализации для конкретных платформ:

При компиляции для бэкенда Native AtomicReference хранит volatile-переменную типа T и атомарно обновляет её. Дополнительные сведения о гарантиях атомарности чтения и записи см. в документации kotlin.concurrent.Volatile.

При компиляции для JVM экземпляры AtomicReference представлены типом java.util.concurrent.atomic.AtomicReference. Сведения о гарантиях volatile-доступа и обновления атомарных переменных см. в спецификации языка Java (17.4 Модель памяти).

Для JS и Wasm реализация AtomicReference тривиальна и не является потокобезопасной, поскольку эти платформы не поддерживают многопоточность.

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

@ExperimentalAtomicApi
actual class AtomicReference<T>(value: T)

Ссылка на объект, значение которой можно обновлять атомарно.

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

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

@ExperimentalAtomicApi
actual class AtomicReference<T>(value: T)

Ссылка на объект, значение которой можно обновлять атомарно.

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

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

@ExperimentalAtomicApi
actual class AtomicReference<T>(var value: T)

Ссылка на объект, значение которой можно обновлять атомарно.

Операция чтения load имеет те же эффекты для памяти, что и чтение свойства Volatile; операция записи store имеет те же эффекты для памяти, что и запись свойства Volatile; операции чтения-модификации-записи, такие как exchange, compareAndSet, compareAndExchange, имеют те же эффекты для памяти, что и чтение и запись свойства Volatile.

Дополнительные сведения о гарантиях атомарности чтения и записи см. в документации kotlin.concurrent.Volatile.

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

@ExperimentalAtomicApi
actual class AtomicReference<T>(value: T)

Ссылка на объект, значение которой можно обновлять атомарно.

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

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

AtomicReference
expect constructor(value: T)

Создаёт новый AtomicReference, инициализированный указанным значением.

Свойства

value

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

@Volatile
var value: T

Функции

asJavaAtomic

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

@ExperimentalAtomicApi
fun <T> AtomicReference<T>.asJavaAtomic(): AtomicReference<T>

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

compareAndExchange

Начиная с Kotlin: 2.1

expect fun compareAndExchange(expectedValue: T, newValue: T): T

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

compareAndSet

Начиная с Kotlin: 2.1

expect fun compareAndSet(expectedValue: T, newValue: T): Boolean

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

exchange

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

expect fun exchange(newValue: T): T

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

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

actual fun exchange(newValue: T): T

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

fetchAndUpdate

Начиная с Kotlin: 2.2

@ExperimentalAtomicApi
expect inline fun <T> AtomicReference<T>.fetchAndUpdate(transform: (T) -> T): T

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

getAndSet

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

fun getAndSet(newValue: T): T

Атомарно присваивает значение, указанное в качестве нового значения, и возвращает старое значение.

load

Начиная с Kotlin: 2.1

expect fun load(): T

Атомарно загружает значение из этого AtomicReference.

store

Начиная с Kotlin: 2.1

expect fun store(newValue: T)

Атомарно записывает новое значение в этот AtomicReference.

toString

Начиная с Kotlin: 2.1

expect open override fun toString(): String

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

update

Начиная с Kotlin: 2.2

@ExperimentalAtomicApi
expect inline fun <T> AtomicReference<T>.update(transform: (T) -> T)

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

updateAndFetch

Начиная с Kotlin: 2.2

@ExperimentalAtomicApi
expect inline fun <T> AtomicReference<T>.updateAndFetch(transform: (T) -> T): T

Атомарно обновляет значение этого AtomicReference, используя значение, полученное вызовом функции 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-reference/

Spec-Zone.ru

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