Worker
class Worker
Свойства
id
val id: Int
name
Имя работника, указанное в Worker.start или по умолчанию "worker $id",
val name: String
platformThreadId
Получить идентификатор платформенной нити работника.
val platformThreadId: ULong
Функции
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
Планирование задачи для дальнейшего выполнения в работнике.
fun executeAfter( afterMicroseconds: Long = 0, operation: () -> Unit)
park
Приостановка выполнения текущего работника до появления нового запроса или истечения времени ожидания, указанного в timeoutMicroseconds. Если process равно true, обрабатываются элементы очереди, ожидающие выполнения, включая отложенные запросы. Обратите внимание, что таким образом могут обрабатываться несколько запросов.
fun park( timeoutMicroseconds: Long, process: Boolean = false ): Boolean
processQueue
Обработка задач в очереди этого работника. Обратите внимание, что задачи, запланированные с помощью executeAfter с ненулевым временем ожидания, не обрабатываются таким образом. Если во время обработки очереди поступит запрос на завершение, работник помечается как завершенный и завершит работу после завершения текущего запроса.
fun processQueue(): Boolean
requestTermination
Запрос на завершение работника.
fun requestTermination( processScheduledJobs: Boolean = true ): Future<Unit>
toString
Строковое представление работника.
fun toString(): String
Свойства объекта-компаньона
activeWorkers
Получить список всех незавершенных работников.
val activeWorkers: List<Worker>
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–2023 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/