并行操作在scala中挂起

时间:2017-12-06 15:34:06

标签: macos scala

斯卡拉诺布在这里: { menu.Title == "Club Finder" ? <a href='#'>Club Finder</a> : //remove double quote from here. menu.Title } <span className="fa fa-chevron-down" />

现在我想将map函数应用于此并行集合val pv = (1 to 100).toArray.par

pv

但是上述操作仍然存在。有什么理由吗?

在Mac OS X(High Sierra)上使用Scala版本pv.map(_ * 2)

1 个答案:

答案 0 :(得分:3)

似乎这是由静态初始化程序死锁引起的,请参阅:

https://github.com/scala/scala-parallel-collections/issues/34

此问题在 repl 中指出,当创建并行集合时,repl会为它生成包装器,当init时,它会导致死锁

它也可以在以下程序中重现:

https://github.com/scala/bug/issues/8119

object Foreacher {
  val n = 0
  val m = List(1).par.foreach(_ => n)
  def main(args: Array[String]): Unit = println("Hello, all")
}