Spec-Zone.ru › Kotlin 1.4

Работник

kotlin-stdlib / kotlin.native.concurrent / Работник
Требования к платформе и версии: Native (1.3)
inline class Worker

Класс, представляющий работника.

Свойства

Требования к платформе и версии: Native (1.3)

id

val id: Int
Требования к платформе и версии: Native (1.3)

name

Имя работника, указанное в Worker.start или по умолчанию "работник $id",

val name: String

Функции

Требования к платформе и версии: Native (1.3)

asCPointer

Преобразовать работника в значение COpaquePointer, которое можно передать через указатель native void*. Может использоваться в качестве аргумента Worker.fromCPointer.

fun asCPointer(): COpaquePointer?
Требования к платформе и версии: Native (1.3)

execute

Планирование задачи для дальнейшего выполнения в работнике. Execute — это двухэтапная операция:

fun <T1, T2> execute(
    mode: TransferMode, 
    producer: () -> T1, 
    job: (T1) -> T2
): Future<T2>
Требования к платформе и версии: Native (1.3)

executeAfter

Планирование задачи для дальнейшего выполнения в работнике. Параметр operation должен быть либо замороженным, либо выполнение должно быть запланировано в текущем работнике. В противном случае будет выброшено исключение IllegalStateException.

fun executeAfter(
    afterMicroseconds: Long = 0, 
    operation: () -> Unit)
Требования к платформе и версии: Native (1.3)

park

Остановка выполнения текущего работника до тех пор, пока не придёт новый запрос или не истечёт таймаут, указанный в timeoutMicroseconds. Если process имеет значение true, элементы очереди обработки выполняются, включая отложенные запросы. Обратите внимание, что таким образом может быть обработано несколько запросов.

fun park(
    timeoutMicroseconds: Long, 
    process: Boolean = false
): Boolean
Требования к платформе и версии: Native (1.3)

processQueue

Обработка ожидающей задачи(ей) в очереди этого работника. Обратите внимание, что задачи, запланированные с помощью executeAfter с ненулевым таймаутом, не обрабатываются таким образом. Если во время обработки очереди через этот API поступает запрос на завершение, работник помечается как завершённый и выйдет из работы после завершения текущего запроса.

fun processQueue(): Boolean
Требования к платформе и версии: Native (1.3)

requestTermination

Запрос на завершение работы работника.

fun requestTermination(
    processScheduledJobs: Boolean = true
): Future<Unit>
Требования к платформе и версии: Native (1.3)

toString

Строковое представление работника.

fun toString(): String

Свойства компаньон-объекта

Требования к платформе и версии: Native (1.3)

current

Возвращает текущего работника. Контекст работника доступен для любого действительного контекста Kotlin, но только фактически активный работник, созданный с помощью Worker.start, автоматически обрабатывает запросы на выполнение. В других ситуациях необходимо явно вызвать processQueue для обработки очереди запросов.

val current: Worker

Функции компаньон-объекта

Требования к платформе и версии: Native (1.3)

fromCPointer

Создание объекта работника из указателя C.

fun fromCPointer(pointer: COpaquePointer?): Worker
Требования к платформе и версии: Native (1.3)

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API