Main Thread Finalizer Processor
Начиная с Kotlin: 1.9
object MainThreadFinalizerProcessor
Этот объект позволяет настраивать поведение обработчика финализаторов, работающего в главном потоке.
На платформах Apple Kotlin/Native освобождает объекты ObjC/Swift, переданные в Kotlin, при обработке финализаторов после сборки мусора. Kotlin/Native также может использовать главный цикл обработки событий для освобождения объектов, переданных в Kotlin в главном потоке. Это поведение можно отключить, установив бинарную опцию objcDisposeOnMain в значение false. Подробнее см. в разделе Интеграция с iOS.
Этот обработчик финализаторов работает следующим образом:
Финализаторы, которые должны выполняться в главном потоке, планируются сборщиком мусора после завершения основной фазы сборки мусора
В главный цикл обработки событий будет добавлена задача, в которой начнётся обработка запланированных финализаторов
Финализаторы будут обрабатываться внутри
autoreleasepoolпакетами размером batchSizeЕсли во время выполнения задачи обработчик обнаружит, что прошло больше времени, чем maxTimeInTask, он остановится и добавит в главный поток ещё одну задачу, чтобы продолжить обработку финализаторов позже. Обратите внимание: если выполнение какого-либо финализатора занимает очень много времени, задача всё равно обработает весь пакет размером batchSize, и время может значительно превысить maxTimeInTask
Гарантируется, что интервал между задачами составляет не менее minTimeBetweenTasks.
maxTimeInTask и minTimeBetweenTasks позволяют обрабатывать другие задачи, добавленные в главный поток (например, события пользовательского интерфейса), без существенных задержек.
Свойства
Начиная с Kotlin: 1.9
val available: Boolean
true будет ли Kotlin/Native использовать MainThreadFinalizerProcessor для обработки финализаторов.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.native.runtime/-g-c/-main-thread-finalizer-processor/index.html