Объект scala.concurrent.Await
объект Await
Await используется для обеспечения правильной обработки блокировок для Awaitable экземпляров.
Хотя иногда полезно, например, для тестирования, рекомендуется избегать использования Await всякий раз, когда это возможно, отдавая предпочтение комбинаторам и/или обратным вызовам. Методы result и ready Await будут блокировать выполнение вызывающей нити до своего возвращения, что приведет к снижению производительности и, возможно, к проблемам с тупиком.
| Надтипы | |
|---|---|
| Тип объекта |
Конкретные методы
Исходный код@throws(scala.Predef.classOf[scala.concurrent.TimeoutException]) @throws(scala.Predef.classOf[scala.InterruptedException])
Дождаться состояния «завершено» для Awaitable.
Хотя этот метод блокирующий, внутреннее использование blocking обеспечивает возможность для базового ExecutionContext должным образом управлять блокировкой.
ПРЕДУПРЕЖДЕНИЕ: Настоятельно не рекомендуется использовать длительные таймауты, так как прогресс вызывающей нити будет приостановлен (заблокирован) до тех пор, пока Awaitable не станет готовым или таймаут не истечёт.
| Параметры значения |
|
|---|---|
| Возвращает |
|
| Исключения |
|
Исходный код@throws(scala.Predef.classOf[scala.concurrent.TimeoutException]) @throws(scala.Predef.classOf[scala.InterruptedException])
Ожидать и вернуть результат (типа T) Awaitable.
Хотя этот метод блокирующий, внутреннее использование blocking обеспечивает возможность для базового ExecutionContext должным образом управлять блокировкой.
ПРЕДУПРЕЖДЕНИЕ: Настоятельно не рекомендуется использовать длительные таймауты, так как прогресс вызывающей нити будет приостановлен (заблокирован) до тех пор, пока у Awaitable не будет результата или таймаут не истечёт.
| Параметры значения |
|
|---|---|
| Возвращает | значение результата, если |
| Исключения |
|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/concurrent/Await$.html