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