Трейт scala.concurrent.BlockContext
Компаньон объект BlockContext
трейт BlockContext extends AnyRef
Абстрактные методы-члены
абстрактный def blockOn[T](thunk: ⇒ T)(неявный permission: CanAwait): T
Внутренне используется фреймворком; Обозначает (и, в конечном итоге, выполняет) делегат, который потенциально блокирует вызывающий java.lang.Thread.
Клиенты должны использовать scala.concurrent.blocking или scala.concurrent.Await вместо этого.
Члены-значения
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), иначе false.
- Определяющие классы
- AnyRef → Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращает значение хэша, согласованное с равенством значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одно и то же значение хэша для каждого из них. Для null возвращает хэш-код, где null.hashCode выбрасывает NullPointerException.
- возвращает
значение хэша, согласованное с ==
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен благодаря неявной конверсии из BlockContext в any2stringadd[BlockContext] выполненной методом any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (BlockContext, B)
- Неявный
- Этот член добавлен благодаря неявной конверсии из BlockContext в ArrowAssoc[BlockContext] выполненной методом ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- AnyRef → Any
final def asInstanceOf[T0]: T0
Приведение объекта-получателя к типу T0.
Обратите внимание, что успех приведения во время выполнения зависит от семантики стирания Scala. Поэтому выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, а выражение List(1).asInstanceOf[List[String]] — нет. В последнем примере, поскольку аргумент типа стёрт во время компиляции, невозможно проверить, соответствуют ли содержимое списка нужному типу.
- возвращает
объект-получатель.
- Определяющие классы
- Any
- Исключения
ClassCastExceptionесли объект-получатель не является экземпляром стирания типаT0.
def clone(): AnyRef
Создаёт копию объекта-получателя.
По умолчанию реализация метода clone зависит от платформы.
- возвращает
копию объекта-получателя.
def ensuring(cond: (BlockContext) ⇒ Boolean, msg: ⇒ Any): BlockContext
- Неявный
- Этот член добавлен благодаря неявной конверсии из BlockContext в Ensuring[BlockContext] выполненной методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (BlockContext) ⇒ Boolean): BlockContext
- Неявный
- Этот член добавлен благодаря неявной конверсии из BlockContext в Ensuring[BlockContext] выполненной методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: ⇒ Any): BlockContext
- Неявный
- Этот член добавлен благодаря неявной конверсии из BlockContext в Ensuring[BlockContext] выполненной методом Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): BlockContext
- Неявный
- Этот член добавлен неявным преобразованием из BlockContext в Ensuring[BlockContext] при помощи метода Ensuring в scala.Predef.
- Классы-определения
- Ensuring
final def eq(arg0: AnyRef): Boolean
Проверяет, является ли аргумент (that) ссылкой на объект-получатель (this).
Метод eq реализует отношение эквивалентности на непустых экземплярах AnyRef, и имеет три дополнительных свойства:
-
Он согласован: для любых непустых экземпляров
x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false.Для любого непустого экземпляра x типа AnyRef, вызовы x.eq(null) и null.eq(x) возвращают false.
null.eq(null) возвращает true. При переопределении методов equals или hashCode важно обеспечить, чтобы их поведение соответствовало равенству по ссылке. Таким образом, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и иметь одинаковый хэш-код (o1.hashCode == o2.hashCode).
- возвращает
trueесли аргумент является ссылкой на объект-получатель;falseв противном случае.
- Классы-определения
- AnyRef
def equals(arg0: Any): Boolean
Метод равенства для ссылочных типов. Реализация по умолчанию делегирует вызов eq.
См. также equals в scala.Any.
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Классы-определения
- AnyRef → Any
def finalize(): Unit
Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.
Подробности о времени и вызове метода finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями зависят от платформы.
- Атрибуты
- protected[lang]
- Классы-определения
- AnyRef
- Аннотации
- @throws( classOf[java.lang.Throwable] )
- Примечание
не указан в SLS как член AnyRef
def formatted(fmtstr: String): String
Возвращает строку, отформатированную согласно заданной строке format. Строки форматирования аналогичны строкам форматирования в String.format (@см java.lang.String.format).
- Неявный
- Этот член добавлен неявным преобразованием из BlockContext в StringFormat[BlockContext] при помощи метода StringFormat в scala.Predef.
- Классы-определения
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу объекта во время выполнения.
def hashCode(): Int
Метод hashCode для ссылочных типов. См. hashCode в scala.Any.
- возвращает
значение хэш-кода для этого объекта.
final def isInstanceOf[T0]: Boolean
Проверяет, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат теста модулируется семантикой стирания в Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, из-за стирания типа во время компиляции, нельзя проверить, являются ли элементы списка заданного типа.
- возвращает
trueесли объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Классы-определения
- Any
final def ne(arg0: AnyRef): Boolean
Эквивалентно !(this eq that).
- возвращает
trueесли аргумент не является ссылкой на объект-получатель;falseв противном случае.
- Классы-определения
- AnyRef
final def notify(): Unit
Разбуживает один поток, ожидающий монитора объекта-получателя.
- Классы-определения
- AnyRef
- Аннотации
- @native()
- Примечание
не указан в SLS как член AnyRef
final def notifyAll(): Unit
Разбуживает все потоки, ожидающие монитора объекта-приемника.
- Классы-определения
- AnyRef
- Аннотации
- @native()
- Примечание
не указано SLS как член AnyRef
final def synchronized[T0](arg0: ⇒ T0): T0
- Классы-определения
- AnyRef
def toString(): String
Создаёт строковое представление этого объекта. Представление по умолчанию зависит от платформы. На платформе Java это конкатенация имени класса, "@" и хэш-кода объекта в шестнадцатеричном формате.
- возвращает
строковое представление объекта.
- Классы-определения
- AnyRef → Any
final def wait(): Unit
- Классы-определения
- AnyRef
- Аннотации
- @throws( ... )
final def wait(arg0: Long, arg1: Int): Unit
- Классы-определения
- AnyRef
- Аннотации
- @throws( ... )
final def wait(arg0: Long): Unit
def →[B](y: B): (BlockContext, B)
- Неявный
- Этот член добавлен неявным преобразованием из BlockContext в ArrowAssoc[BlockContext] через метод ArrowAssoc в scala.Predef.
- Классы-определения
- ArrowAssoc
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/concurrent/BlockContext.html
Контекст, который должен быть уведомлен о том, что поток собирается заблокироваться. Фактически этот трейт предоставляет реализацию для
scala.concurrent.Await.scala.concurrent.Await.result()иscala.concurrent.Await.ready()находит экземплярBlockContext, сначала проверив, был ли он предоставлен черезBlockContext.withBlockContext(), а если нет — проверив, является лиThread.currentThreadэкземпляромBlockContext. Таким образом, пул потоков может иметь свои экземплярыjava.lang.Thread, которые реализуютBlockContext. Если поток не реализуетBlockContext, используется по умолчаниюBlockContext.Обычно вы захотите продолжить цепочку с предыдущим
BlockContext, вот так:val oldContext = BlockContext.current val myContext = new BlockContext { override def blockOn[T](thunk: =>T)(implicit permission: CanAwait): T = { // you'd have code here doing whatever you need to do // when the thread is about to block. // Then you'd chain to the previous context: oldContext.blockOn(thunk) } } BlockContext.withBlockContext(myContext) { // then this block runs with myContext as the handler // for scala.concurrent.blocking }