JAva単例モードとスレッドセキュリティの問題


餓漢式
餓漢式は変数の申明時に初期化作業を完了する
利点:スレッドセキュリティの問題がない
欠点:プログラムのロード時に、単一のモードのエンティティが作成され、パフォーマンスの問題があります.
public class Singleton {
	
	//        
	private Singleton () {}

	private static Singleton instance = new Singleton();
	
	public static Singleton getInstance() {
		return instance;
	}			
}

怠け者風
怠け者式は変数が必要なときに初期化関数を呼び出して構築する
package com.roocon.thread.t5;

public class Singleton2 {
	
	private Singleton2() {}
	
	private static volatile Singleton2 instance;
	
	/**
	 *       
	 * 
	 * @return
	 */
	public static Singleton2 getInstance () {
		//        ,         synchronized,        
		if(instance == null) {
			synchronized (Singleton2.class) {
				if(instance == null) {
					instance = new Singleton2();  //      	
					//            // 1
					//              // 2
					// instance              // 3
				}
			}
		}
		return instance;
	}
}