- class Single
- {
- private static Single s = null;
- private Single(){}
- public static Single getInstance()
- {
- if(s==null)<font color="Red">//第一次判断是否为空</font>
- {
- synchronized(Single.class)
- {
- if(s==null)<font color="Red">//第二次判断是否为空</font>
- {
- s = new Single();
- }
- }
- }
- return s;
- }
- }
复制代码
两次判断的目的就是为了提高效率,第一次已经判断过了,第二次是不是不用判断了,能进来的不都是非空的吗,加了第二次判断,不又降低效率了吗? |