Spec-Zone.ru › Kotlin 1.4

Пакет kotlin.native.concurrent

kotlin-stdlib / kotlin.native.concurrent

Типы

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

AtomicInt

Атомные значения и замораживание: атомные типы AtomicInt, AtomicLong, AtomicNativePtr и AtomicReference являются уникальными с точки зрения замораживания. Они предоставляют операции изменения, но могут участвовать в замороженных подграфах. Таким образом, общие замороженные объекты могут иметь поля атомных типов.

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

AtomicLong

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

AtomicNativePtr

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

AtomicReference

Атомная ссылка на замороженный Kotlin-объект. Может использоваться в конкурентных сценариях, но часто должна быть типа nullable и обнуляться, когда больше не нужна. В противном случае может произойти утечка памяти, если атомная ссылка является частью цикла ссылок.

class AtomicReference<T>
Требования к платформе и версии: Native (1.3)

Continuation0

class Continuation0 : () -> Unit
Требования к платформе и версии: Native (1.3)

Continuation1

class Continuation1<T1> : (T1) -> Unit
Требования к платформе и версии: Native (1.3)

Continuation2

class Continuation2<T1, T2> : (T1, T2) -> Unit
Требования к платформе и версии: Native (1.3)

DetachedObjectGraph

Отключенный граф объектов инкапсулирует передаваемый отключенный подграф, к которому нельзя получить внешний доступ, пока он не будет подключен с помощью функции расширения attach.

class DetachedObjectGraph<T>
Требования к платформе и версии: Native (1.3)

FreezableAtomicReference

Атомная ссылка на Kotlin-объект. Может использоваться в конкурентных сценариях, но должна быть сначала заморожена, иначе ведет себя как обычная коробка для значения. Если заморожена, должна быть обнулена, когда больше не нужна. В противном случае может произойти утечка памяти, если атомная ссылка является частью цикла ссылок.

class FreezableAtomicReference<T>
Требования к платформе и версии: Native (1.3)

FreezingException

Исключение, выбрасываемое при невозможности замораживания.

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

Future

Класс, представляющий абстрактное вычисление, результат которого может стать доступным в будущем.

class Future<T>
Требования к платформе и версии: Native (1.3)

FutureState

Состояние объекта Future.

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

InvalidMutabilityException

Исключение, выбрасываемое при попытке изменить замороженные объекты.

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

MutableData

Изменяемый буфер данных с одновременным доступом. Может быть доступен из нескольких потоков одновременно.

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

TransferMode

Основы передачи объектов.

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

Worker

Класс, представляющий поток.

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

WorkerBoundReference

Замороженная общая ссылка на Kotlin-объект.

class WorkerBoundReference<out T : Any>

Аннотации

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

SharedImmutable

Помечает свойство верхнего уровня с поддерживающим полем как неизменяемое. Возможно совместное использование значения такого свойства между несколькими потоками, но оно становится глубоко замороженным, поэтому изменения в его состоянии или состоянии ссылающихся на него объектов невозможны.

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

ThreadLocal

Помечает свойство верхнего уровня с поддерживающим полем или объект как локальный для потока. Объект остается изменяемым и его состояние можно изменять, но каждый поток будет иметь отдельную копию этого объекта, поэтому изменения в одном потоке не отражаются в другом.

annotation class ThreadLocal

Свойства

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

isFrozen

Проверяет, является ли данный объект null, замороженным или постоянным (т. е. инициализированным на этапе компиляции).

val Any?.isFrozen: Boolean

Функции

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

atomicLazy

Атомарный ленивый инициализатор, может использоваться в замороженных объектах, замораживает лямбду инициализации, поэтому используйте его очень осторожно. Кроме того, как и при других использовании AtomicReference, может потенциально утечь память, поэтому рекомендуется использовать atomicLazy в случаях объектов, живущих вечно, таких как объекты-синглтоны, или в случаях, когда гарантируется отсутствие циклического мусора.

fun <T> atomicLazy(initializer: () -> T): Lazy<T>
Требования к платформе и версии: Native (1.3)

attach

Присоединяет ранее отсоединённую подграф объектов, созданную с помощью DetachedObjectGraph. Обратите внимание, что после присоединения графа объектов указатель DetachedObjectGraph.stable больше не имеет смысла и должен быть удалён, поэтому присоединение одного объекта DetachedObjectGraph может произойти только один раз.

fun <T> DetachedObjectGraph<T>.attach(): T
Требования к платформе и версии: Native (1.3)

callContinuation0

fun COpaquePointer.callContinuation0()
Требования к платформе и версии: Native (1.3)

callContinuation1

fun <T1> COpaquePointer.callContinuation1()
Требования к платформе и версии: Native (1.3)

callContinuation2

fun <T1, T2> COpaquePointer.callContinuation2()
Требования к платформе и версии: Native (1.3)

ensureNeverFrozen

Эта функция гарантирует, что если при попытке заморозки мы видим такой объект — замораживание завершается неудачей, и выбрасывается FreezingException.

fun Any.ensureNeverFrozen()
Требования к платформе и версии: Native (1.3)

freeze

Замораживает подграф объектов, доступный из этого объекта. Замороженные объекты можно свободно использовать в разных потоках/воркерах.

fun <T> T.freeze(): T
Требования к платформе и версии: Native (1.3)

waitForMultipleFutures

fun <T> Collection<Future<T>>.waitForMultipleFutures(
    millis: Int
): Set<Future<T>>
Требования к платформе и версии: Native (1.3)

withWorker

Выполняет block с новым Worker в качестве ресурса, запуская нового воркера, вызывая предоставленный block (в текущем контексте) с только что запущенным воркером в качестве этого и завершая воркера после завершения блока. Обратите внимание, что эта операция довольно ресурсоёмкая, используйте предварительно настроенного воркера или пул воркеров, если нужно выполнять её часто.

fun <R> withWorker(
    name: String? = null, 
    errorReporting: Boolean = true, 
    block: Worker.() -> R
): R

© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.native.concurrent/index.html

Spec-Zone.ru

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