Работник
inline class Worker
Класс, представляющий работника.
Свойства
id
val id: Int
name
Имя работника, указанное в Worker.start или по умолчанию "работник $id",
val name: String
Функции
asCPointer
Преобразовать работника в значение COpaquePointer, которое можно передать через указатель native void*. Может использоваться в качестве аргумента Worker.fromCPointer.
fun asCPointer(): COpaquePointer?
execute
Планирование задачи для дальнейшего выполнения в работнике. Execute — это двухэтапная операция:
fun <T1, T2> execute( mode: TransferMode, producer: () -> T1, job: (T1) -> T2 ): Future<T2>
executeAfter
Планирование задачи для дальнейшего выполнения в работнике. Параметр operation должен быть либо замороженным, либо выполнение должно быть запланировано в текущем работнике. В противном случае будет выброшено исключение IllegalStateException.
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–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/-worker/index.html