Immutable对象和final字段的并发行为

时间:2017-07-22 12:27:04

标签: java multithreading scala

我正在阅读这本书Learning Concurrent Programming in Scala(2nd),第2章中有一段关于Immutable objects and final fields的段落

  

我们已经说过,程序必须建立先发生过的关系   避免数据争用,但这条规则有例外。如果   object仅包含final字段和对封闭的引用   对象在之前不会对另一个线程可见   构造函数完成后,该对象被认为是不可变的并且可以   在没有任何同步的情况下在线程之间共享。

有些人可以帮我详细解释一下吗?我不是很了解它。

某些代码会有所帮助

1 个答案:

答案 0 :(得分:1)

同步是关于建立线程更改受同步保护的对象内的值的顺序。如果所有字段都是最终字段,则无法更改该对象,并且同步是多余的。