Scala val并发

时间:2015-08-31 18:53:15

标签: scala

如果我有一个表达式,例如:

block 1 {
   val x = 5
}

然后我做:

block 2 {
   val z = x + 5
   val y = x + 4
   val a = x * 2
   val b = x / 5
}

block 2中的陈述是否同时执行?

如何将block 1更改为lazy val x = 5会影响block 2的执行?

如何将block 1更改为var x = 5影响执行block 2

1 个答案:

答案 0 :(得分:6)

  

块2中的语句是否同时执行?

没有。它们是按顺序执行的。

  

如何将块1更改为lazy val x = 5影响块2的执行?

初始化z需要稍长时间,因为它需要等待x初始化。然后就会正常进行。

  

如何将块1更改为var x = 5影响执行块2?

原样,它不会。

要让它们同时执行,您必须在不同的线程上执行此操作,最好使用Future