Объявления на уровне пакета
Примитивы параллелизма и вспомогательные функции для параллельного программирования, специфичные для Kotlin/Native.
Типы
Требования к платформе и версии: Native (1.3)
classAtomicInt(var value: Int)
Значение Int, которое всегда обновляется атомарно. Дополнительные сведения о гарантиях атомарности при чтении и записи см. в kotlin.concurrent.Volatile.
Требования к платформе и версии: Native (1.3)
classAtomicLong(var value: Long = 0)
Значение Long, которое всегда обновляется атомарно. Дополнительные сведения о гарантиях атомарности при чтении и записи см. в kotlin.concurrent.Volatile.
Требования к платформе и версии: Native (1.3)
classAtomicNativePtr(var value: NativePtr)
Значение kotlinx.cinterop.NativePtr, которое всегда обновляется атомарно. Дополнительные сведения о гарантиях атомарности при чтении и записи см. в kotlin.concurrent.Volatile.
Требования к платформе и версии: Native (1.3)
classAtomicReference<T>(var value: T)
Ссылка на объект, которая всегда обновляется атомарно.
Требования к платформе и версии: Native (1.3)
classContinuation0(block: () -> Unit, invoker: CPointer<CFunction<(COpaquePointer?) -> Unit>>, singleShot: Boolean = false) : Function0<Unit>
Требования к платформе и версии: Native (1.3)
classDetachedObjectGraph<T>
Отсоединённый граф объектов инкапсулирует передаваемый отсоединённый подграф, к которому нельзя получить доступ извне, пока он не будет присоединён с помощью функции расширения attach.
Требования к платформе и версии: Native (1.3)
classFreezableAtomicReference<T>(var value: T)
Этот класс был полезен только с устаревшим менеджером памяти. Вместо него используйте AtomicReference.
Требования к платформе и версии: Native (1.3)
classFreezingException(toFreeze: Any, blocker: Any) : RuntimeException
Исключение, которое возникает, когда заморозка невозможна.
Требования к платформе и версии: Native (1.3)
enum FutureState : Enum<FutureState>
Состояние объекта future.
Требования к платформе и версии: Native (1.3)
classInvalidMutabilityException(message: String) : RuntimeException
Исключение, которое возникает при попытке изменить замороженные объекты.
Требования к платформе и версии: Native (1.3)
classMutableData(capacity: Int = 16)
Изменяемый буфер данных с параллельным доступом. К нему могут одновременно обращаться несколько workers.
Требования к платформе и версии: Native (1.9), Wasm-JS (1.9), Wasm-WASI (1.9)
annotation class ObsoleteWorkersApi@RequiresOptIn(message = "Workers API is obsolete and will be replaced with threads eventually",level = RequiresOptIn.Level.WARNING ) @Target(allowedTargets = [AnnotationTarget.CLASS,AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.LOCAL_VARIABLE, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.CONSTRUCTOR, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, AnnotationTarget.TYPEALIAS ] )
Помечает весь API, связанный с Worker, как устаревший.
Требования к платформе и версии: Common (1.0), Native (1.3)
expect annotation classSharedImmutable
Эта аннотация не оказывает никакого эффекта, поэтому её можно безопасно удалить.
Требования к платформе и версии: Common (1.0), Native (1.3)
expect annotation class ThreadLocal
Помечает свойство верхнего уровня с полем хранения или объект как локальный для потока. Объект остаётся изменяемым, и его состояние можно менять, но у каждого потока будет собственная копия этого объекта, поэтому изменения в одном потоке не отражаются в другом.
Требования к платформе и версии: Native (1.3)
enum TransferMode : Enum<TransferMode>
Примечание: современный менеджер памяти Kotlin/Native позволяет совместно использовать объекты между потоками без дополнительных процедур, поэтому TransferMode действует только с устаревшим менеджером памяти.
Требования к платформе и версии: Native (1.3)
classWorkerBoundReference<out T : Any>(val value: T)
Общая ссылка на объект Kotlin, которая не замораживает целевой объект при заморозке самой ссылки.
Свойства
Функции
Требования к платформе и версии: Native (1.3)
fun <T>atomicLazy(initializer: () -> T): Lazy<T>
Атомарный ленивый инициализатор можно использовать в замороженных объектах; он замораживает лямбда-выражение инициализации, поэтому применять его следует очень осторожно. Кроме того, как и при других способах использования AtomicReference, он может привести к утечке памяти. Поэтому в случаях, когда объекты существуют постоянно (например, синглтоны object), или когда гарантировано отсутствие циклического мусора, рекомендуется использовать atomicLazy.
Требования к платформе и версии: Native (1.3)
inline fun <T> DetachedObjectGraph<T>.attach(): T
Присоединяет ранее отсоединённый подграф объектов, созданный с помощью DetachedObjectGraph. Обратите внимание: после присоединения графа объектов указатель DetachedObjectGraph.stable теряет смысл и должен быть отброшен, поэтому один объект DetachedObjectGraph можно присоединить только один раз.
Требования к платформе и версии: Native (1.3)
fun COpaquePointer.callContinuation0()
Требования к платформе и версии: Native (1.3)
fun <T1> COpaquePointer.callContinuation1()
Требования к платформе и версии: Native (1.3)
fun <T1, T2> COpaquePointer.callContinuation2()
Требования к платформе и версии: Native (1.3)
fun Any.ensureNeverFrozen()
Эта функция гарантирует, что при обнаружении такого объекта во время попытки заморозки операция завершится неудачно и будет выброшено исключение FreezingException.
Требования к платформе и версии: Native (1.3)
fun <T> waitForMultipleFutures(futures: Collection<Future<T>>, timeoutMillis: Int): Set<Future<T>>
Ожидает доступности future в коллекции. Возвращает набор со всеми future, значения которых доступны для использования, то есть имеющими состояние FutureState.COMPUTED.
Требования к платформе и версии: Native (1.3)
fun <T> Collection<Future<T>>.waitForMultipleFutures(millis: Int): Set<Future<T>>
Требования к платформе и версии: Native (1.3)
external fun waitWorkerTermination(worker: Worker)
Требования к платформе и версии: Native (1.3)
inline fun <R> withWorker(name: String? = null, errorReporting: Boolean = true, block: Worker.() -> R): R
Выполняет блок, используя новый Worker в качестве ресурса: запускает новый worker, вызывает предоставленный блок (в текущем контексте), передавая ему в качестве this запущенный worker, а после завершения блока останавливает worker. Эта операция довольно затратна, поэтому при частом выполнении используйте предварительно настроенный worker или пул workers.
© 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.native.concurrent/index.html