Spec-Zone.ru › Kotlin 1.6

Пакет 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-объект. Может использоваться в конкурентных сценариях, но часто должна быть типом с возможностью null и обнуляться, когда больше не требуется. В противном случае может произойти утечка памяти. Для обнаружения таких утечек в режиме отладки может быть полезно kotlin.native.internal.GC.detectCycles.

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

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

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

FreezableAtomicReference

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

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

Класс, представляющий 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)

заморозить

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

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

дождаться нескольких будущих

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

ждать завершения работы рабочей единицы

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

с рабочей единицей

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

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

© 2010–2022 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