Object ExecutionContext.parasitic
object parasitic extends ExecutionContextExecutor
ПРЕДУПРЕЖДЕНИЕ: Выполняйте только логику, которая быстро вернёт управление вызывающей стороне.
Данный ExecutionContext крадёт время выполнения у других потоков, заставляя свои Runnable работать в потоке, который вызывает execute, и затем возвращая управление вызывающей стороне после выполнения *всех* своих Runnable. Вложенные вызовы execute будут выполняться через трамплинирование, чтобы предотвратить неконтролируемый рост стека.
При использовании parasitic с абстракциями, такими как Future, в многих случаях порядок выполнения логики Thread будет непредсказуемым, поскольку зависит от того, когда/если этот Future завершится.
Не вызывайте блокирующие операции в Runnables, переданных в этот ExecutionContext, так как это помешает прогрессу других ожидающих Runnables и вызывающей Thread.
Симптомы неправильного использования этого ExecutionContext включают, но не ограничиваются, тупиками и серьёзными проблемами производительности.
Любые NonFatal или InterruptedExceptions будут сообщены defaultReporter.
| Supertypes | |
|---|---|
| Self type |
Конкретные методы
Исходный код
Выполняет блок кода в этом контексте выполнения.
| Параметры |
|
|---|---|
| Определяющие классы | Executor -> ExecutionContext |
Исходный код
Сообщает о том, что асинхронное вычисление завершилось с ошибкой. См. ExecutionContext.reportFailure(throwable: Throwable)
| Определяющие классы | BatchingExecutor -> ExecutionContext |
|---|
Исходный код
ОБЯЗАТЕЛЬНО должно выбрасывать NullPointerException, когда runnable равно null. При реализации синхронного BatchingExecutor, РЕКОМЕНДУЕТСЯ реализовать этот метод как runnable.run()
| Определяющие классы | BatchingExecutor |
|---|
Наследованные методы
Исходный код
ПРЕДУПРЕЖДЕНИЕ: Никогда не используйте как submitAsyncBatched , так и submitSyncBatched в одной реализации BatchingExecutor
| Наследуется от | BatchingExecutor (скрытый) |
|---|
Исходный код
ПРЕДУПРЕЖДЕНИЕ: Никогда не используйте как submitAsyncBatched , так и submitSyncBatched в одной реализации BatchingExecutor
| Наследуется от | BatchingExecutor (скрытый) |
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/concurrent/ExecutionContext$$parasitic$.html