嘿所以我正在检查以下代码,我发现了一个在线(https://javarevealed.wordpress.com/tag/initialization-on-demand-holder),它使用双重检查锁定来实现Singelton设计模式,如下所示:
public static volatile SingletonExample getSingletonInstance() {
if (null == singletonInstance) {
synchronized (SingletonExample.class){
if (null == singletonInstance) {
singletonInstance = new SingletonExample();
}
}
}
return singletonInstance;
}
我的问题是这里在方法签名中使用volatile关键字有什么意义?我认为volatile修饰符只能在字段上使用?
任何帮助都会很棒。
感谢。