我正在阅读这本书Learning Concurrent Programming in Scala(2nd),
第2章中有一段关于Immutable objects and final fields
的段落
我们已经说过,程序必须建立先发生过的关系 避免数据争用,但这条规则有例外。如果 object仅包含final字段和对封闭的引用 对象在之前不会对另一个线程可见 构造函数完成后,该对象被认为是不可变的并且可以 在没有任何同步的情况下在线程之间共享。
有些人可以帮我详细解释一下吗?我不是很了解它。
某些代码会有所帮助
答案 0 :(得分:1)
同步是关于建立线程更改受同步保护的对象内的值的顺序。如果所有字段都是最终字段,则无法更改该对象,并且同步是多余的。