JVM规范中至少有一节final关于对内存模型的影响,对于多线程代码来说非常重要:
final对象的字段允许"安全发布":
final字段必须对所有线程都可见.final引用访问的任何对象上的字段也保证至少与构造函数退出时一样最新.final可以在不同步的情况下同时访问不可变对象(所有字段都是并且是基元或对不可变对象的引用的对象).final通过final引用读取"有效不可变"对象(其实际上并非实际但实际上永远不会改变的对象)也是安全的.final,那么您必须通过其他方式提供线程安全性.但请注意,JVM并未强制实际终结:您可以使用反射重新分配值(这当然会破坏安全发布).
| 归档时间: |
|
| 查看次数: |
805 次 |
| 最近记录: |