Работник
class Worker
Свойства
id
val id: Int
name
Имя работника, указанное в Worker.start или по умолчанию "работник $id",
val name: String
Функции
asCPointer
Преобразовать работника в значение COpaquePointer, которое можно передать через указатель native void*. Может использоваться в качестве аргумента Worker.fromCPointer.
fun asCPointer(): COpaquePointer?
execute
Планирует задание для дальнейшего выполнения в работнике. Выполнение — это двухэтапная операция:
fun <T1, T2> execute( mode: TransferMode, producer: () -> T1, job: (T1) -> T2 ): Future<T2>
executeAfter
Планирует задание для дальнейшего выполнения в работнике.
fun executeAfter( afterMicroseconds: Long = 0, operation: () -> Unit)
park
Приостанавливает выполнение текущего работника до тех пор, пока не придёт новый запрос или не истечёт тайм-аут, указанный в timeoutMicroseconds. Если process равно true, обрабатываются элементы очереди ожиданий, включая отложенные запросы. Обратите внимание, что таким образом могут обрабатываться несколько запросов.
fun park( timeoutMicroseconds: Long, process: Boolean = false ): Boolean
processQueue
Обработать(и) ожидающие задания в очереди этого работника. Обратите внимание, что задания, запланированные с помощью executeAfter с ненулевым тайм-аутом, не обрабатываются таким образом. Если запрос на завершение поступает во время обработки очереди через этот API, работник помечается как завершенный и выйдет, когда текущий запрос будет выполнен.
fun processQueue(): Boolean
requestTermination
Запросить завершение работника.
fun requestTermination( processScheduledJobs: Boolean = true ): Future<Unit>
toString
Строковое представление работника.
fun toString(): String
Свойства объекта-компаньона
current
Возвращает текущего работника. Контекст работника доступен в любом корректном контексте Kotlin, но только фактически активный работник, созданный с помощью Worker.start, автоматически обрабатывает запросы на выполнение. В других ситуациях для обработки очереди запросов необходимо явно вызвать processQueue.
val current: Worker
Функции объекта-компаньона
fromCPointer
Создать объект работника из указателя C.
fun fromCPointer(pointer: COpaquePointer?): Worker
start
Запустить новый планировщик, такой как поток, для принятия новых задач через execute интерфейс. Как правило, новый работник может потребоваться для выгрузки вычислений на другой ядро, для ввода-вывода может быть лучше использовать асинхронное ввод-вывод в сочетании с более лёгкими сопрограммами.
fun start( errorReporting: Boolean = true, name: String? = null ): Worker
© 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/index.html