java単一例モード実現

676 ワード

JDKで 5の後、Javaは新しいメモリモデルを使用した。volatileキーワードには明確な意味があります。JDK 1.5の前にvolatileはキーワードですが、その用途を明確に規定していません。volatileに修飾された書き込み変数は前の読み書きコードと調整できません。読み変数はその後の読み書きコードと調整できません。だから、私たちは簡単にinstanceにvolatileキーワードを加えるだけでいいです。
 
public class SingletonClass { 

  private volatile static SingletonClass instance = null; 

  public static SingletonClass getInstance() { 
    if (instance == null) { 
      synchronized (SingletonClass.class) { 
        if(instance == null) { 
          instance = new SingletonClass(); 
        } 
      } 
    } 
    return instance; 
  } 

  private SingletonClass() { 

  } 
    
}
詳しい原因はご覧ください。http://bbs.csdn.net/topics/391840031