Spec-Zone.ru › Scala 2.12 Library

Трейт scala.concurrent.BlockContext

Компаньон объект BlockContext

трейт BlockContext extends AnyRef

Контекст, который должен быть уведомлен о том, что поток собирается заблокироваться. Фактически этот трейт предоставляет реализацию для 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
}
Источник
BlockContext.scala
Линейные супертипы

Абстрактные методы-члены

абстрактный 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 зависит от платформы.

возвращает

копию объекта-получателя.

Атрибуты
protected[lang]
Определяющие классы
AnyRef
Аннотации
@throws( ... ) @native()
Примечание

не определён SLS как член AnyRef

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[_]

Возвращает представление класса объекта во время выполнения.

возвращает

объект класса, соответствующий типу объекта во время выполнения.

Классы-определения
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Метод hashCode для ссылочных типов. См. hashCode в scala.Any.

возвращает

значение хэш-кода для этого объекта.

Классы-определения
AnyRef → Any
Аннотации
@native()

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

Классы-определения
AnyRef
Аннотации
@throws( ... ) @native()

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

Spec-Zone.ru

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