execute
Требования к платформе и версии: Native (1.3)
fun <T1, T2> execute( mode: TransferMode, producer: () -> T1, job: (T1) -> T2 ): Future<T2>
Планирует задание для дальнейшего выполнения в потоке. Выполнение — это операция в две фазы:
- сначала выполняется функция producer, и полученный объект, а также все, на что он ссылается, анализируется на предмет изолированной подграфы объектов, если режим проверки включён.
- Затем эта отключенная графа объектов и указатель на функцию job добавляются в очередь заданий выбранного потока. Обратите внимание, что функция job не должна сама захватывать состояние, так что всё состояние явно хранится в объекте, произведённом функцией producer. Запланированное задание выполняется потоком, а результат такого выполнения отсоединяется от графы объектов потока. Тот, кто будет потреблять будущее, может использовать результаты вычислений потока. Обратите внимание, что некоторые технически отдельные подграфы могут привести к
kotlin.IllegalStateException, поэтомуkotlin.native.internal.GC.collect()может быть вызвано в концеproducerиjob, если существуют циклические структуры мусора или другие не собранные объекты, ссылающиеся на передаваемое значение.
Возвращает будущее с результатом вычисления job.
© 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/-worker/execute.html