public class SingleTon{
//使用vilatile修饰成员变量,防止指令重排序优化
private static volatile SingleTon instance = null;
//私有化构造器
private SingleTon (){
}
public static SingleTon getInstance(){
if(instance == null){
//使用同步代码块,只有在第一次获取对象时会执行到,之后访问instance变量均不为null直接返回
synchronized(SingleTon.class){
if(instance == null){
instance = new SingleTon();
}
}
}
return instance;
}
}
如何使用volatile和sychronized实现单例模式
最新推荐文章于 2024-08-12 20:23:48 发布