Spec-Zone.ru › Kotlin 1.7

TransferMode

kotlin-stdlib / kotlin.native.concurrent / TransferMode
Требования к платформе и версии: Native (1.3)
enum class TransferMode

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

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

Объекты могут передаваться между потоками в одном из двух возможных режимов.

  • БЕЗОПАСНЫЙ - подграф объекта проверяется на отсутствие ссылок на него из других глобальных или локальных переменных, и передаётся, если это так, иначе выбрасывается исключение
  • НЕБЕЗОПАСНЫЙ - объект слепо передаётся другому работнику, если в передающем работнике остались ссылки — это может привести к сбою или некорректной работе программы

В безопасном режиме проверяется, не используется ли объект в передающем потоке, используя алгоритм, специфичный для управления памятью (реализация ARC полагается на пробное удаление в графе объектов, укоренённых в переданном объекте), и выбрасывается исключение IllegalStateException, если граф объектов, укоренённых в переданном объекте, доступен каким-либо другим способом.

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

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

См. также

kotlin.native.internal.GC.collect

Значения перечисления

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

БЕЗОПАСНЫЙ

Выполняется проверка достижимости.

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

НЕБЕЗОПАСНЫЙ

Проверка достижимости пропускается, что может привести к необъяснимым сбоям в приложении. ИСПОЛЬЗУЙТЕ НЕБЕЗОПАСНЫЙ РЕЖИМ ТОЛЬКО ЕСЛИ ВЫ СООБРАЖАЕТЕ, ЧТО ДЕЛАЕТЕ!!!

Свойства

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

значение

val value: Int

© 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/-transfer-mode/index.html

Spec-Zone.ru

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