我遇到了该scala.concurrent.blocking
方法,根据Scala文档,这是...
用于指定一段可能被阻塞的代码,从而允许当前的BlockContext调整运行时的行为。正确标记阻止代码可以提高性能或避免死锁。
我有些疑惑:
- 产生新线程的因素是什么?
- 这仅适用于
scala.concurrent.ExecutionContext.Implicits.global
执行上下文还是用户创建的执行上下文? - 如果我用
blocking {
...包装任何可执行文件,该}
怎么办? - 我们应该使用此构造的任何实际用例。
blocking
什么?是否应该仅将其用于期货(而不是在主线程中)?