<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    zhyiwww
    用平實的筆,記錄編程路上的點點滴滴………
    posts - 536,comments - 394,trackbacks - 0
    老關者,吾同學也。哈哈,今天看他的博客,對單態(tài)模式又有了進一步的理解。
    以前使用的單態(tài)模式,也能實現(xiàn),不過有個限制,看下面的代碼
    import java.util.*;
    class Singleton
    {
    private static Singleton instance;

    private Singleton()
    {
    }

    public static Singleton getInstance()
    {
    if (instance == null) //1
    instance = new Singleton(); //2
    return instance; //3
    }
    }
    這就是我們常使用的單態(tài)模式。
    現(xiàn)在,我們作一個假設,如果兩個線程同時執(zhí)行此程序,都剛執(zhí)行完1,到2,還沒有之行,停住。
    此時
    thread1得到的instance是null
    thread2得到的instance也是null
    下面會如何呢?
    顯然,兩個線程會分別創(chuàng)建和初始化一個new Singleton()對象。
    那么,我們的單態(tài)還能實現(xiàn)單態(tài)的功能嗎?不能。
    不過,這是個特例,只有在多線程程序,同時兩個或多個線程都執(zhí)行到1還沒有執(zhí)行2的時候才能出現(xiàn)。也就是說,如果沒有實現(xiàn)方法的同步的話,上面的模式是不能保證生成一個實例的。
    如果是在非多線程的程序中就更不會出現(xiàn)這樣的問題。
    但是,些程序是一個嚴密的工作。所以,程序要在任何情況和平臺下都是正確的。

    希望,通過此文,你也能明白,為什么上面的單態(tài)模式是不安全的,為什么這種實現(xiàn)方法有生成多個實例的可能?
    想更深入的理解,請參考
    http://guanhw.blog.hexun.com/10653016_d.html


    |----------------------------------------------------------------------------------------|
                               版權聲明  版權所有 @zhyiwww
                引用請注明來源 http://www.tkk7.com/zhyiwww   
    |----------------------------------------------------------------------------------------|
    posted on 2008-02-15 13:27 zhyiwww 閱讀(879) 評論(2)  編輯  收藏 所屬分類: j2ee

    FeedBack:
    # re: 跟老關學單態(tài)模式
    2008-02-15 16:44 | honeyjava
    有必要用JCF中的類嗎,不知道你那個vector干什么用的,很沒意思。單例模式已經(jīng)不能再成熟了,double-check式的已經(jīng)被認為是線程不安全的。  回復  更多評論
      
    # re: 跟老關學單態(tài)模式
    2008-02-18 16:21 | zhyiwww
    @honeyjava
    現(xiàn)在是我修改后的代碼。
    import java.util.*;
    class Singleton
    {
    private static Singleton instance;

    private Singleton()
    {
    }

    public static Singleton getInstance()
    {
    if (instance == null) //1
    instance = new Singleton(); //2
    return instance; //3
    }
    }
    當時就是摘抄的一段代碼,只是為了能說明問題。
    不過,聽了您的說明,我對此模式有糊涂了。如果說上面的方法也是不安全的,那么哪一種方式是安全的呢?歡迎指導。  回復  更多評論
      
    主站蜘蛛池模板: 亚洲午夜福利717| 亚洲精品成人在线| 亚洲色成人网一二三区| 少妇性饥渴无码A区免费 | 亚洲一区AV无码少妇电影☆| 亚洲日本中文字幕天天更新| 欧美三级在线电影免费| 亚洲精品福利你懂| 免费a级毛片高清视频不卡| 亚洲人配人种jizz| 黄网址在线永久免费观看| 国产成人亚洲午夜电影| 亚洲综合色在线观看亚洲| 一级毛片免费全部播放| 亚洲精品无码乱码成人| 亚洲视频免费在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 亚欧在线精品免费观看一区| 亚洲国产高清视频在线观看| 在线播放免费人成视频在线观看| 亚洲高清一区二区三区电影| 亚洲国产小视频精品久久久三级| 一出一进一爽一粗一大视频免费的| 国产亚洲精品xxx| 中国人xxxxx69免费视频| 在线综合亚洲欧洲综合网站| 亚洲AⅤ永久无码精品AA| 三上悠亚电影全集免费| 亚洲自偷自偷精品| 在线观看视频免费国语| 一级做a爰片久久免费| 精品亚洲成a人片在线观看| 久久久久国产精品免费免费搜索| 青青青视频免费观看| 久久亚洲精品无码| 在线不卡免费视频| 99在线免费观看| 亚洲字幕AV一区二区三区四区| 亚洲人成电影网站国产精品| 中文字幕亚洲免费无线观看日本| 亚洲另类无码专区首页|