少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
          package com.abin.lee.collection.singleton;
          /**
           * 雙重檢查加鎖 單例模式
           * @author abin
           * 這個單例模式寫法可以大大減少getInstance的時間消耗!
           */
          public class SingletonOne {
            /** 
               * volatile關鍵詞確保:當singleton變量被初始化成SingletonOne實例時,多個線程正確地處理singleton變量 
               */ 
           private volatile static SingletonOne singleton=null;
           public SingletonOne(){}
           public static SingletonOne getInstance(){
            if(null==singleton){//檢查實例,如果不存在就進入同步區塊
             synchronized (SingletonOne.class) {//注意,只有第一次才徹底執行這里的代碼
              if(null!=singleton){
               singleton=new SingletonOne();
              }
             }
            }
            return singleton;
           }
          }





          package com.abin.lee.collection.singleton;

          public class SingletonTwo {
           /**
            * volatile關鍵詞確保:當uniqueInstance變量被初始化成Singleton實例時,
            * 多個線程正確地處理uniqueInstance變量
            */
           private volatile static SingletonTwo singleton = new SingletonTwo();

           private SingletonTwo() {
           }

           public static SingletonTwo getInstance() {
            return singleton;
           }
          }

          posted on 2012-09-01 00:27 abin 閱讀(662) 評論(0)  編輯  收藏 所屬分類: JavaBasic
          主站蜘蛛池模板: 普陀区| 仁怀市| 增城市| 宁安市| 岳西县| 临猗县| 定日县| 驻马店市| 枣庄市| 万宁市| 施甸县| 上饶县| 辰溪县| 安多县| 台中县| 宁安市| 静安区| 吴桥县| 高碑店市| 驻马店市| 进贤县| 阜城县| 金阳县| 景德镇市| 宜兰县| 巴塘县| 宝山区| 马关县| 奈曼旗| 黑水县| 枞阳县| 邻水| 广昌县| 施秉县| 岳普湖县| 汉寿县| 韶关市| 泸定县| 峨边| 鸡东县| 蓬莱市|