少年阿賓

          那些青春的歲月

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





          package com.abin.lee.collection.singleton;

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

           private SingletonTwo() {
           }

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

          posted on 2012-09-01 00:27 abin 閱讀(657) 評(píng)論(0)  編輯  收藏 所屬分類: JavaBasic
          主站蜘蛛池模板: 葫芦岛市| 江达县| 娄底市| 北京市| 汉中市| 新兴县| 阿鲁科尔沁旗| 遂平县| 玉屏| 延边| 辽中县| 芜湖县| 腾冲县| 双城市| 赣榆县| 威海市| 喀喇| 赫章县| 卢龙县| 基隆市| 左贡县| 阿坝县| 永州市| 荆州市| 黑河市| 南通市| 永登县| 保靖县| 阳城县| 茂名市| 五台县| 荔波县| 德惠市| 海口市| 会宁县| 滁州市| 富宁县| 马公市| 鄱阳县| 英山县| 台东县|