可能性の重複:
Efficient way to implement singleton pattern in JavaスレッドセーフJavaでシングルトンパターンを効率的に実装する方法は?
私はこのBest Singleton Implementation In Javaを読んでいたが、そのスレッドセーフではありません。ウィキあたりとして
: 1.ダブルヌルチェック:
if(singleton==null) { synchronized(Singleton.class) { // this is needed if two threads are waiting at the monitor at the // time when singleton was getting instantiated if(singleton==null) singleton= new Singleton(); }
}
しかし、バグユーティリティを探すには、この2つのエラーが発生します。 2.静的フィールドの遅延初期化が正しくありません。最良の方法は何
、
は、それが正しい:
synchronized (Singleton.class) { if (singleton== null) { singleton= new Singleton(); } }
これは上記の質問の複製です。詳細については、その質問を参照してください。しかし、私はその質問にこれらの便利なリンクがあるかどうかは分かりませんので、[Javaのダブルチェック・ロックについて](http://www.ibm.com/developerworks/java/library/j-dcl.html)を参照してください。 [これらの](http://www.ibm.com/developerworks/library/j-jtp02244.html)Java用の[two](http://www.ibm.com/developerworks/library/j-jtp03304/)アップデート5. [Wikipediaのダブルチェックロックに関する記事](http://en.wikipedia.org/wiki/Double-checked_locking)も参照してください。しかし、あなたの質問への実際の答えは、上記の質問を参照してください。 –