Thi*_*ago 3 java checkstyle double-checked-locking
从发行说明中,checkstyle删除了Double-Checked锁定检查.
我很难理解为什么.他们不仅在发布说明中回复了这个问题,而且还在问题跟踪器中回复:
删除DoubleCheckedLocking检查,如在Java 5(及更高版本)中,使用volatile关键字解决问题.
我假设,如果checkstyle正在删除此警告,那是因为它不再有用.也就是说,错误将不再发生或另一个警告完成工作.但
我不明白为什么在Java 5中不再发生这样的错误,或者它是如何被另一个警告补充的.有人可以解释一下吗?
编辑:我理解添加volatile关键字如何解决问题.我担心的是:这个警告不是值得的吗?我正在考虑程序员使用上述锁定模式的情况,但忘记声明变量volatile.checkstyle还不应警告它吗?
描述几乎解释了这个决定.从Java 1.5开始,您可以使用volatile实例变量.它将正确处理内存可见性问题,使用双重检查锁定不再是一个错误.
这并不意味着使用volatile是解决方案.但在1.5 Java内存模型被重新定义,volatile充分.
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |