單例模式這樣寫比較嚴謹

我先貼出正確的寫法,在分析(注意標紅部分): 注意點已經在代碼標紅,下面分析巧妙之處: (1) 避免鎖定整個 getInstance() ,如果鎖定整個獲取實例的方法,那麼多線程每次獲取的時候,都有可能等待,等其他線程執行完,會有性能的損失。所以在先在(1)處判斷一下,非空的話,直接拿出來用。 (2)第二個if(instance==null) 是因爲,進入同步塊的時候,可能其他線程已經創建完畢,所
相關文章
相關標籤/搜索