我遇到了这个scala.concurrent.blocking
方法,根据Scala文档,这是......
用于指定可能阻塞的代码段,允许当前的BlockContext调整运行时的行为.正确标记阻塞代码可以提高性能或避免死锁.
我有些疑惑:
scala.concurrent.ExecutionContext.Implicits.global
执行上下文或用户创建的执行上下文?blocking {
... 包装任何可执行文件会发生什么}
?axe*_*l22 58
join
构造相互等待时,会在fork/join池中生成新线程,并且还有更多工作要完成,可能会完成其中一个线程.或者,如果其中一个ForkJoinWorker
线程正在执行除使用之外的阻塞的代码join
,则它可以使用ManagedBlocker
s通知池.ExecutionContext
工作线程执行的代码在某些情况下可能会阻塞,并且可以通过使用其他线程计算其他内容来解决此情况.执行上下文可能会也可能不会对此采取行动.在当前(2.10,2.11)实现中,blocking
仅适用于默认的全局执行上下文.Await
,或者你正在等待监视器的条件得到解决,这个条件可以通过其他任务解决/应该在相同的执行上下文上执行的未来 - 在所有这些情况下你应该使用blocking
.编辑:
考虑一下Scala学习并发编程中的第4章.
归档时间: |
|
查看次数: |
14994 次 |
最近记录: |