Ben*_*ngs 13 concurrency scala final java-memory-model
Java内存模型(自1.5开始)将final
字段与非final
字段区别对待.特别是,如果this
引用在构造期间没有转义,则构造函数中的final
字段写入保证在其他线程上可见,即使该对象通过数据争用对另一个线程可用.(写入非final
字段不保证是可见的,因此如果您不正确地发布它们,另一个线程可能会看到它们处于部分构造状态.)
是否有关于Scala编译器如何/如果为类创建final
(而非非final
)支持字段的文档?我查看了语言规范并搜索了网络,但找不到任何确定的答案.(作为比较的@scala.volatile
注释被记录到标记字段volatile
)