天天看點

設計模式:單例模式之懶漢式

1). 起到了懶加載的效果,但是隻能在單線程下使用。

2). 如果在多線程下,一個線程進入了if(null == instance)判斷語句塊,還未來得及往下執行,另一個線程也通過了這個判斷語句,這時便會産生多個執行個體,是以在多線程環境下不可使用這種方式。

3). 結論,在實際開發中,不要使用如下這種方式。

  優缺點:

    1). 解決了線程不安全問題.

    2). 效率太低了,每個線程在想獲得類的執行個體時候,執行getsingleton1()方法都要進行同步,而其實這個方法隻執行一次執行個體化代碼就夠了,後面的想獲得該類執行個體,直接return就行了,方法進行同步效率太低。

    3). 結論: 在實際開發中,不推薦使用這種方式。

   同步代碼塊這種方法連線程安全問題都解決不了,這種同步并不能起到線程同步的作用。假如一個線程進入了if(null == instance)判斷語句塊,還未來得及往下執行,另一個線程也通過了這個判斷語句,這時便會産生多個執行個體