代碼:
雙重檢查,懶漢模式
優點:使用了雙重檢查,很大程度上避免了線程不安全,同時也避免了不必要的鎖開銷。這裡要注意,雖然未使用<code>volatile</code>關鍵字,但是這裡的<code>synchronized</code>已經保證了<code>instance</code>寫操作對其它線程讀操作的可見性。
缺點:性能開銷有點大
靜态常量,餓漢模式
優點:實作簡單,無線程同步問題
缺點:在類裝載時完成執行個體化。若該執行個體一直未被使用,則會造成資源浪費
靜态代碼塊,餓漢模式
跟上面的基本一樣。
靜态内部類,懶漢模式(感覺最好的一個)
優點:無線程同步問題,實作了懶加載(lazy loading)。因為隻有調用<code>getinstance</code>時才會裝載内部類,才會建立執行個體