Spec-Zone.ru › Scala 2.13 Library

Трейт scala.concurrent.BlockContext

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

трейт BlockContext extends AnyRef

Контекст, который должен быть уведомлен о scala.concurrent.blocking, когда поток собирается заблокироваться. По сути, этот трейт предоставляет реализацию для 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
Линейные надтипы
AnyRef, Any

Абстрактные члены

абстрактный def blockOn[T](thunk: => T)(явный permission: CanAwait): T

Используется внутри фреймворка; обозначает (и, в конечном счете, выполняет) лямбда-выражение, которое потенциально блокирует вызывающий java.lang.Thread.

Клиенты должны использовать scala.concurrent.blocking или scala.concurrent.Await вместо этого.

В реализациях этого метода РЕКОМЕНДУЕТСЯ сначала проверить, является ли permission null, и если да, то выбросить IllegalArgumentException.

Исключения

IllegalArgumentException, если permission имеет значение null

Конкретные члены значений

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[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @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 реализует отношение эквивалентности на не-null экземплярах AnyRef, и имеет три дополнительных свойства:

    Он согласован: для любых не-null экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого не-null экземпляра 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: AnyRef): Boolean

Метод равенства для ссылочных типов. По умолчанию делегирует вызов методу eq.

См. также equals в scala.Any.

возвращает

true если объект-получатель эквивалентен аргументу; false в противном случае.

Определяющие классы
AnyRef → Any

def finalize(): Unit

Вызывается сборщиком мусора для объекта-получателя, когда больше нет ссылок на объект.

Детали о том, когда и если вызывается метод finalize, а также взаимодействие finalize с нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[java.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]

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

возвращает

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

Определяющие классы
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. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, относятся ли элементы списка к указанному типу.

returns

true, если объект-приёмник является экземпляром стираемого типа T0; false в противном случае.

Definition Classes
Any

final def ne(arg0: AnyRef): Boolean

Эквивалентно !(this eq that).

returns

true , если аргумент не является ссылкой на объект-приёмник; false в противном случае.

Definition Classes
AnyRef

final def notify(): Unit

Разбуждает единственную нить, ожидающую монитор объекта-приёмника.

Definition Classes
AnyRef
Annotations
@native()
Note

не указан в SLS как член AnyRef

final def notifyAll(): Unit

Разбуждает все нити, ожидающие монитор объекта-приёмника.

Definition Classes
AnyRef
Annotations
@native()
Note

не указан в SLS как член AnyRef

final def synchronized[T0](arg0: => T0): T0

Definition Classes
AnyRef

def toString(): String

Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.

returns

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

Definition Classes
AnyRef → Any

final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException]) @native()

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala/concurrent/BlockContext.html

Spec-Zone.ru

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