Spec-Zone.ru › Kotlin 1.4

TransferMode

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

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

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

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

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

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

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

См. также

kotlin.native.internal.GC.collect

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

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

БЕЗОПАСНЫЙ

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

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

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

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

Свойства

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

значение

val value: Int

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

Spec-Zone.ru

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