本帖最后由 小Zeor……… 于 2014-2-27 00:20 编辑
class LazySingleton{
private static LazySingleton singleton;
private LazySingleton(){
}
public static LazySingleton getInstance(){
if(singleton==null){ //老师说,破坏同步的的原因是因为这里CPU切换,会创造两个实例
singleton !!!如果程序运行到等号的前面一半,然后切换,不也坏事么?为什么这里CPU不会切换? 为什么必须是执行了一句话才会停止啊? =new LazySingleton();
}
return singleton;
}
}
上面这个是 懒汉模式的单例设计,为什么不在我所标注的位置停止啊, 也就是程序为么不在半句的时候进行CPU切换,而在一句结束的时候可能切换 |