原先的單例模式在多線程環境下已經不再適應,那么該怎么辦呢??
答:
(1)使用雙重鎖定實現線程安全的單例模式
(2)靜態初始化單例模式
直接實例化Singleton對象,在GetInstance方法中直接返回_Instance對象
我們知道,靜態成員只初始化一次,也就是說_Instance在第一次訪問該類就實例化,所以Singleton類第一次被訪問的時候,就完成了Singleton類的實例化,而且只被實例化一次,通過這種方式,也能保證多線程環境下的單例模式
勘正:請注意,圖中Singleton的無參構造函數應該聲明為private!!!!!!!!!!!!!!!!!!!!!!