首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

对于单例模式的1点想法

2012-09-01 
对于单例模式的一点想法单例模式很普遍,对于Spring的实现机制不清楚,单就Java语言上的实现机制来讨论。 虽

对于单例模式的一点想法
单例模式很普遍,对于Spring的实现机制不清楚,单就Java语言上的实现机制来讨论。
虽然简单,但要获得一个高性能且线程安全的单例确不简单。
最简单的、成熟的单例实现有如下两种:
1.

private static int hasInitialized=0;   private static Singleton INSTANCE;   public static Singleton getInstance(){     if(hasInitialized==0){       synchronized(Singelton.class){         //Double checking         if(hasInitialized==0){           INSTANCE=new Singleton();           hasInitialized=1;         }       }     }   } 


区别在于:
以hasInitialized==0来判断是否初始化完成,而在NSTANCE=new Singleton();之后才赋值以确认初始化完成。
这样不是既可保持高性能(绝大部分情况下没有锁,不进入需同步的块)、又可保证线程安全么?

热点排行