가능한 중복 :
Efficient way to implement singleton pattern in Java스레드 안전 Java에서 싱글 톤 패턴을 효율적으로 구현할 수 있습니까?
나는이 Best Singleton Implementation In Java을 읽고 있었다,하지만 스레드로부터 안전하지 않습니다. 위키 당으로
: 1. 더블 널 (null) 검사 :
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. 정적 필드의 지연 초기화가 잘못되었습니다.
synchronized (Singleton.class) { if (singleton== null) { singleton= new Singleton(); } }
위의 질문과 중복됩니다. 자세한 내용은 해당 질문을 참조하십시오. 하지만이 질문에 유용한 링크가 있는지는 잘 모르겠습니다. [Java의 이중 체크 잠금] (http://www.ibm.com/developerworks/java/library/j-dcl.html)에 링크되어 있습니다. [these] (http://www.ibm.com/developerworks/library/j-jtp02244.html) Java 용 [two] (http://www.ibm.com/developerworks/library/j-jtp03304/) 업데이트 5. [위키피디아의 이중 잠금에 관한 기사] (http://en.wikipedia.org/wiki/Double-checked_locking)도 참조하십시오. 그러나 귀하의 질문에 대한 실제 답변은 위에 링크 된 질문을 참조하십시오. –