Spec-Zone.ru › Kotlin 1.7

Пакет kotlin.native.concurrent

kotlin-stdlib / kotlin.native.concurrent

Типы

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

AtomicInt

Обёртка над Int с атомными синхронизированными операциями.

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

AtomicLong

Обёртка над Long с атомными синхронизированными операциями.

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

AtomicNativePtr

Обёртка над kotlinx.cinterop.NativePtr с атомными синхронизированными операциями.

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

AtomicReference

Обёртка над Kotlin-объектом с атомными операциями.

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)

Откреплённый граф объектов

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

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

ЗамораживаемыйAtomicReference

Примечание: этот класс полезен только с устаревшей системой управления памятью. Используйте AtomicReference вместо него.

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

ИсключениеЗамораживания

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

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

Future

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

FutureState

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

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

ИсключениеНевернойИзменяемости

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

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

MutableData

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

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

TransferMode

Примечание: современная система управления памятью Kotlin/Native позволяет обмениваться объектами между потоками без дополнительных церемоний, поэтому TransferMode имеет эффект только в устаревшей системе управления памятью.

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

Worker

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

WorkerBoundReference

Управляемая ссылка на Kotlin-объект, которая не замораживает сославшийся объект при собственном замораживании.

class WorkerBoundReference<out T : Any>

Аннотации

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

SharedImmutable

Примечание: эта аннотация имеет эффект только в Kotlin/Native с устаревшей системой управления памятью.

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

ThreadLocal

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

annotation class ThreadLocal

Свойства

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

isFrozen

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

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