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