应该"synchronized" "static"字段的延迟初始化 - 如何修复它



我正在尝试解决一个问题,它说Lazy initialization of "static" fields should be "synchronized"findbug建议的。此链接建议我必须使字段变量volatile或使初始化块synchronized。哪种方式更好?每种方法的优缺点是什么?

没有比这更好的了

只有几种不同的模式可以解决此问题。有关该主题的完整讨论,请参阅此处。

从这个意义上说:对于迈出第一步的新手,只需使用synchronized方法即可。对于"专业"用途 - 请参阅上面的链接;并确定其中给出的解决方案最适合您的需求。

在您的示例中,您应该使用synchronizedvolatile因为不能保证原子性。 如果使用volatile则可以初始化对象的多个实例。

最新更新